Symfony-architecture
Symfony-アーキテクチャ
symfonyは基本的に高品質のコンポーネントとバンドルのコレクションです。 コンポーネントは、単一のコア機能を提供するクラスのコレクションです。 たとえば、* Cacheコンポーネント*はキャッシュ機能を提供し、これを任意のアプリケーションに追加できます。 コンポーネントはSymfonyアプリケーションの構成要素です。 Symfonyには30以上の高品質コンポーネントがあり、Laravel、Silexなどの多くのPHPフレームワークで使用されています。
バンドルはプラグインに似ていますが、作成と使用が簡単です。 実際、Symfonyアプリケーションはそれ自体が他のバンドルで構成されるバンドルです。 単一のバンドルは、任意の数のSymfonyコンポーネントとサードパーティコンポーネントを使用して、Webframework、データベースアクセスなどの機能を提供できます。 symfonyのコアWebフレームワークはFrameworkBundleと呼ばれるバンドルであり、FrameworkExtraBundleと呼ばれるバンドルがあり、これはWebアプリケーションを記述するためのより洗練されたオプションを提供します。
コンポーネント、バンドル、およびSymfonyアプリケーション間の関係は、次の図で指定されています。
Webフレームワーク
symfonyは主に、比較的簡単に高品質のWebアプリケーションを作成するように設計されています。 単純なWebサイトから高度なRESTベースのWebサービスまで、さまざまなタイプのWebアプリケーションを作成するためのさまざまなオプションを提供します。 symfonyはWebフレームワークを個別のバンドルとして提供します。 Symfony Webフレームワークで使用される一般的なバンドルは次のとおりです-
- FrameworkBundle
- FrameworkExtraBundle *DoctrineBundle
symfony Webフレームワークは、Model-View-Controller(MVC)アーキテクチャに基づいています。* モデル*は、ビジネスエンティティの構造を表します。 表示*は、状況に応じて可能な限り最良の方法でモデルをユーザーに表示します。 *Controller はユーザーからのすべてのリクエストを処理し、Modelと対話することで実際の作業を行い、最終的にビューにユーザーに表示するために必要なデータを提供します。
symfonyのWebフレームワークは、エンタープライズグレードのアプリケーションに必要なすべての高レベル機能を提供します。 以下は、Symfony Webアプリケーションのシンプルなワークフローです。
ワークフローは、次の手順で構成されています。
- ステップ1 *-ユーザーは、ブラウザを介してアプリケーションにリクエストを送信します。
- ステップ2 *-ブラウザはWebサーバー、たとえばApache Webサーバーにリクエストを送信します。
- ステップ3 *-Webサーバーはリクエストを基になるPHPに転送し、次にPHPがSymfony Webフレームワークに送信します。
- ステップ4 *-HttpKernelはSymfony Webフレームワークのコアコンポーネントです。 HttpKernelは、ルーティングコンポーネントを使用して特定のリクエストのコントローラーを解決し、ターゲットコントローラーにリクエストを転送します。
- ステップ5 *-すべてのビジネスロジックはターゲットコントローラーで実行されます。
- ステップ6 *-コントローラーはModelと対話し、ModelはDoctrine ORMを介してDatasourceと対話します。
- ステップ7 *-コントローラーがプロセスを完了すると、コントローラー自体またはView Engineを介して応答を生成し、Webサーバーに送り返します。
- ステップ8 *-最後に、Webサーバーによって要求されたブラウザーに応答が送信されます。