API開発者は、データベーススキーマの変更の課題に直面することがよくあります。適切な実装がなければ、列名を変更するにはモデル全体をリファクタリングする必要があります。この記事では、API開発プロセスを簡素化するために、モデルとJSON出力の間のブリッジとしてFractalを使用する方法を示します。
キーポイント:
フラクタルバッグ
FractalはPHPで書かれたプロジェクトであり、リーグの並外れたパッケージに属しています。これらのパッケージは、PHP-FIGの使用や単体テストのカバレッジなど、複数の要件を満たしています。フラクタルは主にフィルスタージョンによって開発されており、定期的な改善を受け続けています。作曲家と一緒に使用することもできます。
環境を設定します
デモンストレーションについては、SilexとIlluminate/Database(LaravelのORMコンポーネント)を使用してフレームワークを設定します。あなたがそれらのいずれにも精通していなくても、それは問題ではありません。私がすることは非常にシンプルで明確であり、可能な限り明確に説明します。不明確な領域がある場合は、お気軽にメッセージを残してください。フレームワークの設定を開始します。手順に従いたくない場合は、記事の最後にすべてのコードをダウンロードできることに注意してください。次に、ルートフォルダー内に新しいフォルダーを作成します。まず、必要なすべての依存関係を含むcomposer.jsonファイルを作成することから始めます。この場合:SilexとIlluminatedatabase。次のようなcomposer.jsonファイルを作成します:
{ "require": { "silex/silex": "~1.2", "illuminate/database": "*" } }
これらのパッケージをインストールするには、composer install
を使用します。
オンライン音楽データベースを例に取ります。データベースは、曲のタイトル、アーティスト名、アーティストのウェブサイト、アルバムタイトル、リリース日、レコードレーベルの複数の曲に関する情報を提供します。最初は、この情報はすべてテーブルに保存されます。自分で試してみたい場合は、この記事のコードベースからファイル1.SQLをダウンロードして、データベースで実行します。
silexを照明付きで使用するには、コードが必要です。アプリフォルダーにindex.phpという名前の新しいファイルを作成します。ここでは、Silexを開始し、データベースに接続し、ルートを定義します。
{ "require": { "silex/silex": "~1.2", "illuminate/database": "*" } }
最初の行は、作曲家の自動荷重ファイルを導入することです。次に、新しいSilexアプリケーションを作成し、照明/データベースをロードします。次に、/tracks
のコントローラーを作成して、/tracks
で始まるすべてのURLがコントローラー/tracks.phpによって処理されます。 database.phpファイルは次のようになります。接続設定を変更することを忘れないでください。
<?php require("../vendor/autoload.php"); $app = new Silex\Application(); $app['database'] = require("database.php"); $app->mount('/tracks', include 'controllers/tracks.php'); $app->run();
<?php use Illuminate\Database\Capsule\Manager as Capsule; $capsule = new Capsule; $capsule->addConnection([ 'driver' => 'mysql', 'host' => 'localhost', 'database' => 'musicstore', 'username' => 'root', 'password' => '', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', ]); use Illuminate\Events\Dispatcher; use Illuminate\Container\Container; $capsule->setEventDispatcher(new Dispatcher(new Container)); $capsule->setAsGlobal(); $capsule->bootEloquent(); return $capsule;
(後続のコンテンツは元のテキストに似ていますが、ステートメントは、重複を避け、元の意図を変更しないように調整および簡素化されます。最初のAPIバージョン、詳細なコードと情報の説明、更新されたAPIバージョン、およびFAQ)は省略されますが、アイデアの重要な手順と概要が保持されます。 読者は、完全なコードとより詳細な説明については、元のテキストを参照できます。 全体として、出力前にフラクタルを追加することにより、エンドユーザーエクスペリエンスに影響を与えることなくデータベースの変更を簡単に作成でき、APIの安定性と一貫性を維持できます。
以上がフラクタル:実用的なウォークスルーの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。