ホームページ > バックエンド開発 > PHPチュートリアル > フラクタル:実用的なウォークスルー

フラクタル:実用的なウォークスルー

Lisa Kudrow
リリース: 2025-02-20 13:10:14
オリジナル
794 人が閲覧しました

Fractal: a Practical Walkthrough

API開発者は、データベーススキーマの変更の課題に直面することがよくあります。適切な実装がなければ、列名を変更するにはモデル全体をリファクタリングする必要があります。この記事では、API開発プロセスを簡素化するために、モデルとJSON出力の間のブリッジとしてFractalを使用する方法を示します。

キーポイント:

  • Fractalは、モデルとJSON出力の間の中間層として機能するPHPプロジェクトであり、モデル全体をリファクタリングせずにデータベーススキーマを変更できるため、API開発が簡素化されます。
  • Fractalは作曲家と連携し、並外れたパッケージのリーグの一部であり、すべてがPHP-Figおよびユニットテストカバレッジの使用の要件を満たしています。
  • フラクタルパッケージは、silexを使用して環境を設定してフレームワークを作成するために照明/データベースを使用できます。必要な依存関係を備えたComposer.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をダウンロードして、データベースで実行します。

code

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();
ログイン後にコピー
最初に、IlluminatedAtabaseクエリビルダーを使用して、ID、名前、アーティストのリストを取得してから出力します。出力には、次の形式があります:

<?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 サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート