Фреймворк Zend Framework в INI-файле - PullRequest
1 голос
/ 27 октября 2010

Мои маршруты настроены следующим образом:

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-Удаленные комнаты' будет работать нормально .. так что, похоже, проблема в Rooms-admin.

Я видел это: Как написать цепочку маршрутизации для субдомена в Zend Framework в INI-файле маршрутизации? но я не хочу использовать часть имени хоста, я хочу, чтобы мои маршруты быть относительно системы маршрутизации по умолчанию (внесение изменений займет слишком много времени). Любые идеи, которые могут вызвать эту ошибку, правильно ли определены маршруты?

Кстати, что быстрее разбирать: ini или xml? Я предполагаю, что массив php - самый быстрый метод из всех возможных.

1 Ответ

0 голосов
/ 07 мая 2011

Не уверен насчет проблемы с цепочкой, которая у вас есть, но у меня есть предложение по вопросу о разборе вашей конфигурации.Кэшируйте сгенерированный конфиг в 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

...