Yaf_Router::getCurrentRoute
(Yaf >=1.0.0)
Yaf_Router::getCurrentRoute — 使われているルート名を取得する
説明
public Yaf_Router::getCurrentRoute ( ) : string
ルーティングプロセスで使われているルート名を取得します。
注意:
このメソッドはルーティングが終わってから呼ぶ必要があります。 終わる前に呼ぶと、常に
null
を返します。
パラメータ
この関数にはパラメータはありません。
返り値
ルート名を文字列で返します。
例
例1 ブートストラップでのルートの登録
<?phpclass Bootstrap extends Yaf_Bootstrap_Abstract{ public function _initConfig() { $config = Yaf_Application::app()->getConfig(); Yaf_Registry::set("config", $config); } public function _initRoute(Yaf_Dispatcher $dispatcher) { $router = $dispatcher->getRouter(); $rewrite_route = new Yaf_Route_Rewrite( "/product/list/:page", array( "controller" => "product", "action" => "list", ) ); $regex_route = new Yaf_Route_Rewrite( "#^/product/info/(\d+)", array( "controller" => "product", "action" => "info", ) ); $router->addRoute('rewrite', $rewrite_route)->addRoute('regex', $regex_route); } /** * register plugin */ public function __initPlugins(Yaf_Dispatcher $dispatcher) { $dispatcher->registerPlugin(new DummyPlugin()); }?>
例2 プラグイン Dummy.php (application.directory/plugins 配下)
<?phpclass DummyPlugin extends Yaf_Plugin_Abstract { public function routerShutdown(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) { var_dump(Yaf_Dispatcher::getInstance()->getRouter()->getCurrentRoute()); }?>?>
上の例の出力は、 たとえば以下のようになります。
/* http://yourdomain.com/product/list/1 * の場合の DummyPlugin の出力 */ string(7) "rewrite" /* http://yourdomain.com/product/info/34 * の場合の DummyPlugin の出力 */ string(5) "regex" /* その他のリクエスト URI * の場合の DummyPlugin の出力 */ string(8) "_default"