FuelPHPのRequestクラス

PHP

FuelPHPでは、index.php内で、ユーザーからのURIリクエストを処理するために同クラスを使用しています。
また、HMVCコンテクストの中でリクエストを生成するためには、このクラスを使う必要があります。

 

forge($uri = null, $route = true)
forgeメソッドは新しいリクエストオブジェクトを返します
new Request($uri, $route = true, $method = null)でも同じく、リクエストオブジェクトを返します。

実行例

http://localhost/test
へリクエスト

コード

class Controller_Test extends Controller
{
  /**
   * action_index
   *
   * @var unknown
   */
  public function action_index() {
    $request = Request::forge('test');
    print_r($request);
  }
}

実行結果

Fuel\Core\Request Object (
  [response] =>
  [uri] => Fuel\Core\Uri Object (
    [uri:protected] => test
    [segments:protected] => Array (
      [0] => test
    )
  )
...

 

execute()
executeメソッドはリクエストを実行し、そのレスポンス結果を利用するために結果をリクエストオブジェクトに格納します。

実行例

http://localhost/test
へリクエスト

コード

class Controller_Test extends Controller
{
  /**
   * action_index
   *
   * @var unknown
   */
  public function action_index() {
    $request = Request::forge('test/test');
    $request = $request->execute();
    print_r($request);
  }

  /**
   * action_test
   *
   * @var unknown
   */
  public function action_test() {
    echo 'test';
  }
}

実行結果

Fuel\Core\Request Object (
  [response] => Fuel\Core\Response Object (
    [status] => 200
    [headers] => Array()
    [body] => Fuel\Core\View Object (
....

 

response()
responseメソッドは、実行されたリクエストのレスポンスオブジェクトを取得します。

実行例

http://localhost/test
へリクエスト

コード

class Controller_Test extends Controller
{
  /**
   * action_index
   *
   * @var unknown
   */
  public function action_index() {
    $request = Request::forge('test/test');
    $response = $request->execute()->response();
    print_r($response);
  }

  /**
   * action_test
   *
   * @var unknown
   */
  public function action_test() {
    echo 'test';
  }
}

実行結果

Fuel\Core\Response Object (
  [status] => 200
  [headers] => Array ()
  [body] => Fuel\Core\View Object (
    [request_paths:protected] => Array ()
    [auto_filter:protected] => 1
    [local_filter:protected] => Array (
....

 

その他のメソッドについても今後、使い方を解説していきます。

コメント

タイトルとURLをコピーしました