→

Фреймворки →  Роуты в Zend Framework и официальная документация

Когда разбирался с роутами в фреймворке, естественно читал документацию.

Столкнулся с такой проблемой, что пример кода из документации не хотел работать


// Создание маршрутизатора

$router = $ctrl->getRouter(); // по умолчанию возвращает rewrite router
$router->addRoute(
    'user',
    new Zend_Controller_Router_Route('user/:username',
                                     array('controller' => 'user',
                                           'action' => 'info'))
);
 


Начал рыть, не давала покоя переменная $ctrl. Я думал, что она где-то объявлена в фреймворке, потом выше кода в документации прочитал

Для того, чтобы правильно использовать маршрутизатор, вы должны инстанцировать его, добавить пользовательские маршруты, и внедрить его во фронт-контроллер. Следующий код иллюстрирует эту процедуру

В общем нужно инстанцировать:)

В начале кода добавляем:

$ctrl  = Zend_Controller_Front::getInstance();


Опять же, подразумевается, что у вы все, что надо заинклудили, в итоге получаем такой пример, который будет работать:


set_include_path('../library' . PATH_SEPARATOR . get_include_path());

require_once 'Zend/Controller/Front.php';    
require_once 'Zend/Controller/Router/Route.php';    

$ctrl  = Zend_Controller_Front::getInstance();

// Создание маршрутизатора

$router = $ctrl->getRouter(); // по умолчанию возвращает rewrite router
$router->addRoute(
    'user',
    new Zend_Controller_Router_Route('user/:username',
                                     array('controller' => 'user',
                                           'action' => 'info'))
);
 


Удачи в изучении документации:)
0