symfony-アーキテクチャ

symfonyは基本的に高品質のコンポーネントとバンドルのコレクションです。コンポーネントは、単一のコア機能を提供するクラスのコレクションです。例えば、Cache component任意のアプリケーションに追加できるキャッシュ機能を提供します。コンポーネントはSymfonyアプリケーションの構成要素です。Symfonyには30以上の高品質コンポーネントがあり、Laravel、Silexなどの多くのPHPフレームワークで使用されています。

バンドルはプラグインに似ていますが、作成と使用が簡単です。実際、Symfonyアプリケーションはそれ自体が他のバンドルで構成されるバンドルです。単一のバンドルは、任意の数のSymfonyコンポーネントとサードパーティコンポーネントを使用して、Webフレームワーク、データベースアクセスなどの機能を提供できます。SymfonyコアWebフレームワークはFrameworkBundleと呼ばれるバンドルであり、FrameworkExtraBundleと呼ばれるバンドルがあります。 Webアプリケーションを作成するためのオプション。

コンポーネント、バンドル、Symfonyアプリケーション間の関係を次の図に示します。

Webフレームワーク

symfonyは主に、比較的簡単に高品質のWebアプリケーションを作成するように設計されています。単純なWebサイトから高度なRESTベースのWebサービスまで、さまざまなタイプのWebアプリケーションを作成するためのさまざまなオプションを提供します。SymfonyはWebフレームワークを個別のバンドルとして提供します。SymfonyWebフレームワークで使用される一般的なバンドルは次のとおりです-

  • FrameworkBundle
  • FrameworkExtraBundle
  • DoctrineBundle

symfony Webフレームワークは、Model-View-Controller(MVC)アーキテクチャに基づいています。 Model 当社の事業体の構造を表します。 View は、状況に応じて可能な限り最良の方法でモデルをユーザーに表示します。 Controller ユーザーからのすべてのリクエストを処理し、モデルと対話して実際の作業を行い、最後にビューに必要なデータを提供してユーザーに表示します。

symfony Webフレームワークは、エンタープライズグレードのアプリケーションに必要なすべての高レベルの機能を提供します。以下は、SymfonyWebアプリケーションの簡単なワークフローです。

ワークフローは、次の手順で構成されています。

Step 1 −ユーザーは、ブラウザ(http://www.symfonyexample.com/indexなど)を介してアプリケーションにリクエストを送信します。

Step 2 −ブラウザはApacheWebサーバーなどのWebサーバーにリクエストを送信します。

Step 3 − Webサーバーはリクエストを基盤となるPHPに転送し、PHPはそれをSymfonyWebフレームワークに送信します。

Step 4− HttpKernelは、SymfonyWebフレームワークのコアコンポーネントです。HttpKernelは、ルーティングコンポーネントを使用して、指定された要求のコントローラーを解決し、要求をターゲットコントローラーに転送します。

Step 5 −すべてのビジネスロジックはターゲットコントローラで実行されます。

Step 6 −コントローラーはモデルと対話し、モデルはDoctrineORMを介してデータソースと対話します。

Step 7 −コントローラーがプロセスを完了すると、コントローラーは応答自体を生成するか、View Engineを介して応答を生成し、それをWebサーバーに送り返します。

Step 8 −最後に、応答はWebサーバーによって要求されたブラウザーに送信されます。