Zend Routing не работает - PullRequest
       26

Zend Routing не работает

2 голосов
/ 24 октября 2011

Я пытаюсь настроить свой Zend-маршрут, используя маршруты .ini и начальную загрузку, но по какой-то причине он не может маршрутизировать, как ожидалось.Мои маршруты.ini и bootstrap.php выглядят так:

rout.ini

[production]
routes.guestbook.route = "/guestbook"
routes.guestbook.defaults.controller = guestbook
routes.guestbook.defaults.action = index

bootstrap.php

protected function _initRoutes() 
{

// Get Front Controller Instance

$front = Zend_Controller_Front::getInstance();

// Get Router
$router = $front->getRouter();

$router->addConfig(new Zend_Config_Ini(APPLICATION_PATH.'/configs/routes.ini', 'production'), 'routes');

}

Ответы [ 2 ]

2 голосов
/ 24 октября 2011

После прочтения вашего комментария я могу утверждать, что вы можете удалить эти операторы (config и bootstrap), потому что вы хотите добиться нормального поведения маршрутизатора Zend Framework по умолчанию, если вы не используете модули.

Спасибо FloydThreepwood , которые помнят меня, чтобы написать эту деталь.

0 голосов
/ 24 октября 2011

Самый простой способ настроить маршрутизацию - использовать Zend_Application_Resource_Router.

Конфигурация идет в вашем файле application.ini, и все, код больше не требуется.

Поскольку кажется, что вы используете статический маршрут (без переменных переменных пути), попробуйте это в вашем application.ini файле

resources.router.routes.guestbook.type = "Zend_Controller_Router_Route_Static"
resources.router.routes.guestbook.route = "guestbook"
resources.router.routes.guestbook.defaults.module = "default"
resources.router.routes.guestbook.defaults.controller = "guestbook"
resources.router.routes.guestbook.defaults.action = "index"

Удалите метод _initRoutes() из вашего Bootstrap класса.


Кроме того, это всего лишь отступление, но при использовании других ресурсов, таких как фронт-контроллер в методе начальной загрузки _init*, вы должны убедиться, что они были правильно загружены. Для этого извлеките их вот так

protected function _initSomething()
{
    // make sure resource is bootstrapped
    $this->bootstrap('frontController');

    // retrieve resource
    $front = $this->getResource('frontController');
}

См. http://framework.zend.com/manual/en/zend.application.theory-of-operation.html#zend.application.theory-of-operation.bootstrap.dependency-tracking

...