帶有多個模塊的Zend項目,每個模塊都有自己的routes.ini。並且在基於模塊的引導文件中使用以下腳本加載每個routes.ini文件。zend根據優先級按順序路由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