FuelPHP-アーキテクチャの概要

FuelPHPはテスト済みの戦闘に基づいています Model-View-Controller と一緒にアーキテクチャ HMVC (Hierarchical MVC)サポート。MVCは柔軟で階層化されたアプリケーション開発を提供しますが、HMVCはさらに一歩進んでWebアプリケーションのウィジェット化を可能にします。

FuelPHPの強みは、アプリケーションを開発するための特定の方法を強制しないことです。シンプルで使いやすい標準構造を提供するだけです。開発者は、FuelPHPが提供する事前定義された機能セットを自由に使用したり、必要に応じて変更したりできます。コア機能を含むFuelPHPが提供するすべての機能は、アプリケーションの要件に応じて変更できます。

モデル

モデルは、アプリケーションのビジネスエンティティです。ControllerとViewは、モデルの形式でデータを交換します。モデルにより、ビジネスデータを統一的に表現できます。これにより、データベース層が標準的な方法でWebアプリケーション層と対話できるようになり、データベースエンティティを選択、保存、編集、および削除するオプションが提供されます。

コントローラ

典型的なMVCアプリケーションはコントローラーから始まります。ユーザーがFuelPHPWebアプリケーションにリクエストを送信すると、アプリケーションはリクエストに関するすべての情報を収集し、それをコントローラーに送信します。コントローラは、要求されたページに必要なビジネスロジックを実行してから、モデルの形式で処理されたデータとともに関連するビューを呼び出します。

見る

ビューは、MVCアプリケーションのプレゼンテーション層です。ビューは、モデルをユーザーに表示する方法を決定します。高度なレイアウトへのシンプルなデータレンダリングをサポートしているため、Webサイトはすべてのページでデザインを正規化できます。Viewは、アプリケーション全体で迅速な設計変更を可能にするテーマサポートも提供します。

プレゼンター

Presenterは、FuelPHPが提供する特別な機能です。これは、コントローラーとビューの間の接着剤です。コントローラーは、データベースからのモデルの取得、ビューのデータの生成など、低レベルの責任の一部を共有できます。コントローラーは、ビューではなくプレゼンターを呼び出し、ビューはビューを呼び出します。Presenterは、ビジネスロジックとプレゼンテーション層の純粋な分離を可能にします。

階層MVC

FuelPHPは、クライアント(ブラウザー)からの要求と同様に、あるコントローラーを別のコントローラーから呼び出すオプションを提供します。いずれかのコントローラーが別のコントローラーを呼び出すと、呼び出されたコントローラーは、クライアント(ブラウザー)に応答をレンダリングする代わりに、呼び出し元のコントローラーに応答を返します。これにより、widgetizationWebアプリケーションの。たとえば、コメントセクションは、メイン(ブログ)ページのサブセクションだけでなく、スタンドアロンページとしても表示できます。

モジュール

FuelPHPの顕著な特徴の1つは、Webアプリケーションのセクションをモジュールに変換して、異なるアプリケーション間で共有できることです。たとえば、アプリケーション用に作成されたブログモジュールは、モジュールコードをソースアプリケーションからターゲットアプリケーションにコピーするだけで、別のアプリケーションで再利用できます。

新しいモジュールの作成は、メインアプリケーションの開発と同じくらい簡単であることに注意してください。構造はメインアプリケーションと似ていますが、モジュールが別のフォルダーをコーディングする必要があるという点が異なります。

パッケージ

FuelPHPは、コードをPackageと呼ばれる単一のユニットに編成するオプションを提供します。パッケージには、Webアプリケーションに必要な1つ以上の機能を含めることができます。たとえば、ORM、電子メールなどのデータベースコンポーネントをパッケージに編成して、必要なときにいつでも使用できます。

パッケージには、Webページまたは部分的なWebページが含まれていないという意味で、パッケージはモジュールとは異なります。パッケージは、FuelPHPおよびその他のPHPフレームワークで使用できます。

ワークフロー

FuelPHPのワークフローはシンプルで理解しやすいです。次の図に示します。

  • ユーザーがアプリケーションにリクエストを送信します。

  • コントローラはリクエストを受信し、モデルと対話することで情報を収集します。モデルはデータベースと対話します。

  • コントローラーは、他のコントローラーにサブリクエストを送信して他のコントローラーと対話することにより、情報を収集します。

  • コントローラーは取得したモデルをビューに送信し、ビューはプレゼンテーションを生成して、応答としてクライアントに送信します。

  • 場合によっては、コントローラーが制御をプレゼンターに渡すことがあります。その場合、プレゼンターはモデルから情報を収集し、それをクライアントに送信します。ここで、プレゼンターは、データベースからモデルを取得することを除いて、ビジネスロジックを実行しません。