Фреймворки → Роуты в Zend Framework и официальная документация
Когда разбирался с роутами в фреймворке, естественно читал документацию.
Столкнулся с такой проблемой, что пример кода из документации не хотел работать
// Создание маршрутизатора
$router = $ctrl->getRouter(); // по умолчанию возвращает rewrite router
$router->addRoute(
'user',
new Zend_Controller_Router_Route('user/:username',
array('controller' => 'user',
'action' => 'info'))
);
Начал рыть, не давала покоя переменная $ctrl. Я думал, что она где-то объявлена в фреймворке, потом выше кода в документации прочитал
Для того, чтобы правильно использовать маршрутизатор, вы должны инстанцировать его, добавить пользовательские маршруты, и внедрить его во фронт-контроллер. Следующий код иллюстрирует эту процедуру
В общем нужно инстанцировать:)
В начале кода добавляем:
Опять же, подразумевается, что у вы все, что надо заинклудили, в итоге получаем такой пример, который будет работать:
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'))
);
Удачи в изучении документации:)
Столкнулся с такой проблемой, что пример кода из документации не хотел работать
// Создание маршрутизатора
$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'))
);
Удачи в изучении документации:)



