Symfony-architecture

提供:Dev Guides
移動先:案内検索

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アプリケーションのシンプルなワークフローです。

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サーバーによって要求されたブラウザーに応答が送信されます。