Symfony-controllers
Symfony-コントローラー
コントローラーは、Symfonyアプリケーションに入ってくる各リクエストを処理する責任があります。 コントローラーは要求から情報を読み取ります。 次に、応答オブジェクトを作成してクライアントに返します。
Symfonyによると、 DefaultController クラスは*“ src/AppBundle/Controller” *にあります。 次のように定義されています。
DefaultController.php
ここで、 HttpFoundation コンポーネントはHTTP仕様のオブジェクト指向レイヤーを定義し、 FrameworkBundle にはほとんどの「ベース」フレームワーク機能が含まれています。
リクエストオブジェクト
Requestクラスは、HTTP要求メッセージのオブジェクト指向表現です。
リクエストオブジェクトの作成
要求は、* createFromGlobals()*メソッドを使用して作成できます。
グローバルを使用してリクエストをシミュレートできます。 PHPグローバルに基づいてリクエストを作成する代わりに、リクエストをシミュレートすることもできます。
ここで、* create()*メソッドは、URI、メソッド、およびいくつかのパラメーターに基づいてリクエストを作成します。
リクエストオブジェクトのオーバーライド
- overrideGlobals()*メソッドを使用して、PHPグローバル変数をオーバーライドできます。 次のように定義されています。
リクエストオブジェクトへのアクセス
Webページのリクエストには、ベースコントローラーの* getRequest()*メソッドを使用して、コントローラー(アクションメソッド)でアクセスできます。
リクエストオブジェクトの特定
アプリケーションでリクエストを識別する場合、*“ PathInfo” *メソッドはリクエストURLの一意のIDを返します。 次のように定義されています。
応答オブジェクト
コントローラーの唯一の要件は、Responseオブジェクトを返すことです。 Responseオブジェクトは、指定されたリクエストからのすべての情報を保持し、クライアントに送り返します。
以下は簡単な例です。
例
次のように、JSONでResponseオブジェクトを定義できます。
応答コンストラクター
コンストラクタには3つの引数が含まれています-
- 応答内容
- 状態コード
- HTTPヘッダーの配列
基本的な構文は次のとおりです。
たとえば、コンテンツ引数を次のように渡すことができます。
同様に、他の引数も渡すことができます。
応答を送信する
- send()*メソッドを使用して、クライアントに応答を送信できます。 次のように定義されています。
クライアントを別のURLにリダイレクトするには、 RedirectResponse クラスを使用できます。
次のように定義されています。
FrontController
アプリケーションに着信するすべてのリクエストを処理する単一のPHPファイル。 FrontControllerは、アプリケーションの内部的に異なる部分への異なるURLのルーティングを実行します。
以下は、FrontControllerの基本的な構文です。
ここで、* in_array()*関数は、特定の値の配列を検索します。