Response クラス
Response クラスは HTTP レスポンスとブラウザ出力を扱うメソッドを含んでいます。
ステータスヘッダを設定する
Fuel において、ステータスヘッダは "特別の" ヘッダとして扱われます。設定の仕方も、他のヘッダとは同じではありません。
コントローラの中で次のように設定します:
$response = new Response($body, 404);
Setting the Status Header and other headers
$headers = array (
'Cache-Control' => 'no-cache, no-store, max-age=0, must-revalidate',
'Expires' => 'Mon, 26 Jul 1997 05:00:00 GMT',
'Pragma' => 'no-cache',
);
$response = new Response($body, 404, $headers);
set_header メソッドを使えば独自に作成した HTTP ヘッダを設定出来ます。
本機能は、レスポンスオブジェクトがコントローラのプロパティの 1 つになるような形でコントローラのメソッドから呼び出される必要があります。
静的 |
いいえ |
パラメータ |
パラメータ |
規定値 |
説明 |
$name |
説明 |
付け加えるヘッダ名。名前はユニークで、もし同一名があった場合は置き換えされます。 |
$value |
説明 |
HTTP ヘッダに付加される必要がある文字列です。 |
$replace |
true
|
デフォルトでは同名のヘッダの値はすべて置き換えられます。false がセットされた場合は、ヘッダの書き換えはありませんし、書き換え出来ません。 |
|
返り値 |
void |
例 |
$response = new Response();
// PDF を出力します
$response->set_header('Content-Type', 'application/pdf');
// downloaded.pdf がコールされます
$response->set_header('Content-Disposition', 'attachment; filename="downloaded.pdf"');
// キャッシュをなしにします
$response->set_header('Cache-Control', 'no-cache, no-store, max-age=0, must-revalidate');
$response->set_header('Expires', 'Mon, 26 Jul 1997 05:00:00 GMT');
$response->set_header('Pragma', 'no-cache');
// 更なる例
$response->set_header('Content-Language', 'en');
$response->set_header('Content-Type', 'text/html; charset=utf-8');
return $response;
|
send_headers メソッドは、リクエストされた HTTP ステータスを含むヘッダをブラウザに送信します。
本機能は、レスポンスオブジェクトがコントローラのプロパティの一つになるような形で、コントローラのメソッドの中から呼び出される必要があります。
静的 |
いいえ |
パラメータ |
なし |
返り値 |
void |
例 |
$response->send_headers();
|
通常は手動でこのメソッドを呼び出す必要はありません。リクエスト処理の一部として Fuel がこれを処理するからです。
redirect($url = '', $method = 'location', $redirect_code = 302)
redirect メソッドは、新しい URL にリダイレクトする諸々の方法を提供します。
静的 |
はい |
パラメータ |
パラメータ |
規定値 |
説明 |
$url |
''
|
リダイレクト先の URL 。 |
$method |
'location'
|
リダイレクト方法。'location' と 'refresh'がサポートされています。 |
$redirect_code |
302
|
HTTP ステータスコード。リダイレクトの一部分として送り返されます。 |
|
返り値 |
このメソッドは、現在のスクリプトを終わらせます。返り値を持ちません。 |
例 |
// URL を使います
Response::redirect('http://example.com/home', 'refresh');
// あるいは、相対 URI を使います
Response::redirect('site/about');
|