[英]Zend framework route chaining in ini file
我的路由配置如下:
routes.rooms.type = "Zend_Controller_Router_Route_Static"
routes.rooms.route = "/rooms"
routes.rooms.defaults.module = "rooms"
routes.rooms.defaults.controller = "index"
routes.rooms.defaults.action = "index"
routes.rooms.chains.room.type = "Zend_Controller_Router_Route_Regex"
routes.rooms.chains.room.route = "/(\d+)"
routes.rooms.chains.room.defaults.action = "room"
routes.rooms.chains.room.map.1 = "room_id"
routes.rooms.chains.room.reverse = "/%d"
;admin
routes.rooms.chains.admin.type = "Zend_Controller_Router_Route_Static"
routes.rooms.chains.admin.route = "/admin"
routes.rooms.chains.admin.defaults.controller = "admin"
routes.rooms.chains.admin.defaults.action = "index"
routes.rooms.chains.admin.chains.deletedrooms.type = "Zend_Controller_Router_Route_Regex"
routes.rooms.chains.admin.chains.deletedrooms.route = "/deletedRooms(?:/(\d+))?"
routes.rooms.chains.admin.chains.deletedrooms.defaults.action = "deletedrooms"
routes.rooms.chains.admin.chains.deletedrooms.map.1 = "page_id"
routes.rooms.chains.admin.chains.deletedrooms.defaults.1 = 1
routes.rooms.chains.admin.chains.deletedrooms.reverse = "/deletedRooms/%d"
路线似乎一切正常,但是当尝试使用路线构造导航菜单时(当前尝试使用rooms-admin),该页面未显示任何内容(白页,无错误)。 如果删除路由,则错误消息指出路由尚未定义; 说得通。
如果我注释掉rooms-admin,则稍后的路由“ rooms-admin-deletedrooms”可以正常工作。
我已经看到了: 如何在Zend Framework中的路由INI文件中为子域编写路由链? 但我不想使用主机名部分,我希望我的路由相对于默认路由系统(进行更改将花费很长时间)。 有什么想法可能导致此错误,路由定义正确吗?
附带说明一下,什么是更快解析的:ini或xml? 我猜想php数组是所有选项中最快的方法。
不确定您遇到的链接问题,但是对于解析您的配置的问题,我确实有一个建议。 将生成的配置缓存在APC中,因为它只是一个数组。
<?php
...
/** Zend_Application */
require_once 'Zend/Application.php';
// Use default application.ini config the first time
// then pull the php array from apc
$config_file = APPLICATION_PATH . '/configs/application.ini';
$config_cached = false;
if (apc_exists('application.ini')) {
$config_file = apc_fetch('application.ini');
$config_cached = true;
}
// Create application, bootstrap, and run
$application = new Zend_Application(
APPLICATION_ENV,
$config_file
);
// cache the application.ini config if this is staging or production
if (!$config_cached && ('development' != APPLICATION_ENV)) {
apc_add('application.ini', $application->getOptions());
}
参考: http : //www.hellotecho.com/cache-your-zend-framework-config-to-improve-performance
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.