Zend_Applicationを使ったZend_Router設定
今回は、以下のことをやりたかったのです。
【http://test.com/page/3/】とういうページングURLを実現しつつ、他のルーティングは既存のまま。
【http://test.com/index/index/page/3/】の indexの部分を出したくなかったのです。
それを実現するために application.ini に追加した記述が以下です。
1 2 3 4 5 6 7 8 | ; ルート設定 resources.router.routes.default.type = "Zend_Controller_Router_Route_Module" resources.router.routes.top.type = "Zend_Controller_Router_Route" resources.router.routes.top.route = "page/:page/" resources.router.routes.top.defaults.controller = "index" resources.router.routes.top.defaults.action = "index" resources.router.routes.top.defaults.page = 1 |
上から順番に検索していって、最後にヒットしたルートが有効になるようです。なので、defaultルートは一番上になります。
Zend_Application_Resource_Router
=> Zend_Controller_Router_Rewrite
=> Zend_Controller_Router_Route
=> Zend_Controller_Router_Route_Module
こんな順番でソースを見てたら、面白くなってきて、興味があちこちいってしまい、
動作を確認するまでに、結構時間がかかってしまいました。
Zend_Controller_Router_Rewiteの中に、各Routeクラスを設定していく構成なんですね。
今まで、基本ルールばかりを使ってたので、勉強になりました。
途中で試した Zend_Controller_Route_Regex を動作させれなかったのが気になるので、近いうちにまた実験しします。