Fuelphp-routing

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

FuelPHP-ルーティング

ルーティングマップは、特定のコントローラーのメソッドへのURIを要求します。 この章では、FuelPHPの*ルーティング*の概念について詳しく説明します。

設定

ルート設定ファイルは fuel/app/config/routes.php にあります。 デフォルトの routes.php ファイルは次のように定義されています-

<?php
   return array (
      '_root_'  => 'welcome/index',  //The default route
      '_404_'   => 'welcome/404',    //The main 404 route
      'hello(/:name)?' => array('welcome/hello', 'name' => 'hello'),
   );

ここで、 _ root_ は定義済みのデフォルトルートであり、アプリケーションがルートパスで要求されたときに一致します。 http://localhost:8080/rootの値は、コントローラーと、一致したときに解決されるアクションです。 welcome/index は、_Controller_Welcome_コントローラーおよび_action_index_アクションメソッドに解決されます。 同様に、次の予約済みルートがあります。

  • root -URIが指定されていない場合のデフォルトルート。
  • 403 -HttpNoAccessExceptionが見つかった場合にスローされます。
  • 404 -ページが見つからない場合に戻ります。
  • 500 -HttpServerErrorExceptionが見つかった場合にスローされます。

シンプルなルーティング

ルートはリクエストURIと比較されます。 一致が見つかった場合、要求はURIにルーティングされます。 単純なルーティングは次のように説明されます。

return array (
   'about'  => 'site/about',
   'login' => 'employee/login',
);

ここで、 about はhttp://localhost:8080/aboutと一致し、コントローラー、Controller_Siteおよびアクションメソッド、action_aboutを解決します。

*login* はhttp://localhost:8080/loginと一致し、コントローラー、Controller_Loginおよびアクションメソッド、action_loginを解決します

高度なルーティング

ルートに正規表現を含めることができます。 燃料は、次の高度なルーティング機能をサポートしています-

  • *:any *-これはURIのその時点以降のすべてに一致し、「nothing」には一致しません
  • *:everything *-:anyに似ていますが、「nothing」にも一致します
  • *:segment *-これはURIの1つのセグメントのみに一致しますが、そのセグメントは何でもかまいません
  • *:num *-これは任意の数字と一致します
  • *:alpha *-これは、UTF-8を含むすべてのアルファ文字に一致します
  • *:alnum *-これは、UTF-8を含む任意の英数字と一致します

たとえば、次のルートはURI http://localhost:8080/hello/FuelPHP_に一致し、コントローラー、_Controller_Welcome、およびアクション_action_hello_を解決します

'hello(/:name)?' => array('welcome/hello', 'name' => 'hello'),

_Controller_Welcome_の対応するアクションメソッドは次のとおりです。

public function action_hello() {
   $this->name = Request::active()->param('name', 'World');
   $message = "Hello, " . $this->name;
   echo $message;
}

ここでは、Requestクラスを使用して、URLからnameパラメーターを取得しています。 名前が見つからない場合は、_World_をデフォルト値として使用しています。 _Request_および_Response_の章で_Request_クラスを学習します。

結果

コントローラーようこそ

HTTPメソッドアクション

FuelPHPは、HTTPメソッドのプレフィックス付きアクションに一致するルートをサポートします。 基本的な構文は次のとおりです。

class Controller_Employee extends Controller {
   public function get_index() {
     //called when the HTTP method is GET.
   }
   public function post_index(){
     //called when the HTTP method is POST.
   }
}

次のように、構成ファイルのHTTP動詞に基づいてURLをコントローラーとアクションにルーティングできます。

return array (
  //Routes GET/employee to/employee/all and POST/employee to/employee/create
   ‘employee’ => array(array('GET', new Route(‘employee/all')), array('POST',
      new Route(‘employee/create'))),
);