Fuelphp-requests-and-response

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

FuelPHP-リクエストとレスポンス

HTTP要求とHTTP応答は、あらゆるWebアプリケーションで重要な役割を果たします。 適切に処理するには、httpリクエストの完全な詳細を取得する必要があります。 処理されたら、処理されたデータをhttp応答を介してクライアントに送信する必要があります。

FuelPHPは、HTTPリクエストとHTTPレスポンスをそれぞれ読み書きするための優れた RequestResponse クラスを提供します。 この章では、 Request クラスと Response クラスの両方について学習します。

要求

典型的なWebアプリケーションでは、アプリケーションは現在のリクエストの詳細を解析する必要があります。 _Request_クラスは、アプリケーションによって処理される現在のリクエストを解析する簡単なメソッドを提供します。 _Request_は、httpクライアントとして機能することにより、新しいリクエストを作成するオプションも提供します。

新しいリクエストを作成すると、アプリケーションはアプリケーションの他の部分または完全に別のアプリケーションをリクエストして結果を表示できます。 この章で着信リクエストを解析する方法を学び、HMVCリクエストの章で新しいリクエストを作成する方法を学びましょう。

リクエストの解析

要求クラスには、http要求の詳細を取得するための3つのメソッドがあります。 それらは次のとおりです。

*active* -これは、現在のアクティブなhttp要求を返す静的メソッドです。
$currentRequest = Request::active();

param –指定されたパラメーターの値を返します。 2つの引数が含まれています。 現在のhttp要求でパラメーターが使用できない場合、最初の引数はパラメーター名で、2番目の引数は返す値です。

$param = Request::active()->param('employee_name', 'none');

params –すべてのパラメーターを配列として返すことを除いて、paramと同じです。

$params = Request::active()->params();

簡単なフォームを作成し、リクエストクラスを使用してフォームを処理しましょう。

  • ステップ1 *-従業員のコントローラーで新しいアクション_action_request_を作成します。
public function action_request() {
}
  • ステップ2 *-要求メソッドを呼び出して、現在の要求のすべてのパラメーターを取得します。
public function action_request() {
   $params = Request::active()->params();
}
  • ステップ3 *-取得したパラメーター配列をダンプします。
public function action_request() {
   $params = Request::active()->params();
   echo dump($params);
}
  • ステップ4 *-ルーティングを変更して、パラメーターをルート構成ファイル_fuel/app/config/routes.php_に含めます
'employee/request(/:name)?' => array('employee/request', 'name' => 'name'),

ここで、新しいアクション_http://localhost:8080/employee/request/Jon、_を要求すると、次の応答が表示されます。

解析リクエスト

応答

応答クラスは、http応答を作成するオプションを提供します。 デフォルトでは、ほとんどの状況で応答クラスを直接使用する必要はありません。 代わりに、View(次の章で学習します)を使用してhttp応答を作成します。 Viewは、開発者からhttp応答を非表示にし、基になる_Response_クラスを使用してクライアントに応答を送信します。 高度な状況では、_Response_クラスを直接使用し、完全なhttp応答を作成します。

応答を作成する

応答はヘッダーと本文で構成されます。 メインヘッダーはhttpステータスコードです。 HTTPステータスコードは、応答を記述するためにHTTPプロトコルで定義された標準コードです。 たとえば、ステータスコード200は、リクエストが成功したことを意味します。

応答クラスは、http応答を作成するための3つの引数を提供します。

  • $ body -HTTP応答の本文
  • $ status_code -http応答のステータスコード
  • $ headers -配列としてのオプションのヘッダー
$body = "Hi, FuelPHP";
$headers = array (
   'Content-Type' => 'text/html',
);
$response = new Response($body, 200, $headers);

次のように、従業員コントローラーに新しいアクション_action_response_を作成しましょう。

public function action_response() {
   $body = "Hi, FuelPHP";
   $headers = array ('Content-Type' => 'text/html',);
   $response = new Response($body, 200, $headers);

   return $response;
}

結果

アクションレスポンス

方法

応答クラスは、http応答を操作するための多くのメソッドを提供します。 それらは次のとおりです。

*forge* -上記の応答クラスコンストラクターと同じです。
return Response::forge("Hi, FuelPHP", 404);
*redirect* -応答を送信する代わりにURLにリダイレクトするオプションを提供します。 次の引数が含まれています。
*a.url* -宛先URL b。 method-リダイレクトメソッド。 _location_(デフォルト)および_refresh c_。 redirect_code-HTTPステータスコード。 デフォルト値は302です。
//use a URL
Response::redirect('http://some-domain/index', 'refresh');

//or use a relative URI
Response::redirect('employee/list');
*redirect_back* -前のページにリダイレクトすることを除いて、リダイレクト方法に似ています。 バックページが利用できない場合、リダイレクトページを指定できます。
//If there is no back page, go to the employee list page
Response::redirect_back('/employee/list', 'refresh');
*set_status* -HTTPステータスコードを設定するオプションを提供します。
$response = new Response();
$response->set_status(404);
*set_header* -httpヘッダーを設定するオプションを提供します。
$response = new Response();
$response->set_header('Content-Type', 'application/pdf');

//replace previous value using third arguments
$response->set_header('Content-Type', 'application/pdf', 'text/plain');
*set_headers* -配列を使用して複数のヘッダーを設定するオプションを提供することを除いて、 *set_header* と同じです。
$response = new Response();
$response->set_headers (array
   'Content-Type' => 'application/pdf',
   'Pragma' => 'no-cache',
));
*get_header* -以前に設定されたヘッダーの詳細を取得できます。
$response = new Response();
$response->set_header('Pragma', 'no-cache');

//returns 'no-cache'
$header = $response->get_header('Pragma');

//returns array('Pragma' => 'no-cache')
$header = $response->get_header();
*body* -HTTP応答の本文を設定するオプションを提供します。
$response = new Response();
$response->body('Hi, FuelPHP');

//returns 'Hi, FuelPHP'
$body = $response->body();
*send_headers* -要求されたクライアントにヘッダーを送信します。 FuelPHPはこのメソッドを使用して、応答をクライアントに送信します。 通常、このメソッドを使用する必要はありません。
$response->send_headers();

送信-ヘッダーがhttp応答で制限される場合があることを除いて、send_headersと同じです。

//send the headers as well
$response->send(true);

//only send the body
$response->send(false);
$response->send();