複数のモジュールとすべてのモジュールを備えたZendProjectには、独自のroutes.iniが定義されています。そして、すべてのroutes.iniファイルは、モジュールベースのブートストラップファイルで次のスクリプトを使用してロードされています。
protected function _initRoutes() {
$frontController = Zend_Controller_Front::getInstance();
$router = $frontController->getRouter();
$routerDir = realpath(dirname(__FILE__)). "/configs/routes/moduleRoutes.ini";
$config = new Zend_Config_Ini($routerDir,'production');
$router->addConfig($config,'routes');
}
およびすべてのルートが順序なしでロードされています。ルートはロードされた順序の逆の順序でチェックされ、最初にそれらのルートをチェック/実行し、後でチェック/実行する必要があるためです。
各モジュールのroutes.iniファイルのすべてのルートにorderByビット(1,2,3,4 ...)を追加し、特定の順序でロードして、ルートを順番にチェックする方法はありますか?定義。
モジュールの典型的なroutes.iniファイルは次のようになります。
routes.frontindex.type = "Zend_Controller_Router_Route_Regex"
routes.frontindex.route = "/?(?!login/)([a-zA-Z0-9_-]+)?/?([a-zA-Z0-9_-]+)?/?([0-9_-]+)?"
routes.frontindex.defaults.module = mymodule1
routes.frontindex.defaults.controller = mycontroller1
routes.frontindex.map.page = 1
routes.siteimage.type = "Zend_Controller_Router_Route_Regex"
routes.siteimage.route = "siteimage/?([a-zA-Z0-9_-]+)?/?(jpg|png|gif)?"
routes.siteimage.defaults.module = mymodule1
routes.siteimage.defaults.controller = mycontroller2
routes.siteimage.defaults.action = getimage
routes.siteimage.map.imageid = 1
routes.sitemapseo.type = "Zend_Controller_Router_Route_Static"
routes.sitemapseo.route = "sitemap.xml"
routes.sitemapseo.defaults.module = mymodule1
routes.sitemapseo.defaults.controller = mycontroller3
routes.sitemapseo.defaults.action = sitemap