5.3. Основные маршруты

Основой RewriteRouter является определение пользователем маршрутов. Маршруты создаются вызовом метода addRoute():

$router->addRoute('user', 'user/:username');

Первым параметром является имя маршрута. На данный момент он является избыточным, но в будущем будет использоваться в вспомогательном классе вида (view) для легкой генерации URL в ваших видах. Если нужно воспользоваться предварительно сконфигурированным маршрутом с именем, то можно получить его с помощью метода getRoute.

Вторым параметром является маршрут, который будет сверяться с URL -- например, приведенный выше маршрут будет соответствовать http://example.com/user/martel. Двоеточие в маршруте обозначает переменную URL, которая будет доступна через метод Zend_Controller_Action::_getParam(). В нашем примере параметру с именем username будет присвоено значение 'martel'.

[Замечание] Замечание
Маршруты сверяются в обратном порядке, поэтому удостоверьтесь, что наиболее общие маршруты определены первыми.
[Замечание] Замечание
На данный момент текущая реализация позволяет использовать любые символы, кроме прямой косой черты (/), в идентификаторе переменной, но сильно рекомендуется использовать в них только символы, допустимые для переменных в php. Есть вероятность, что в будущем реализация изменится, и это может вызвать ошибки в вашем коде.

Есть две специальные переменные, которые можно использовать в маршрутах -- 'controller' и 'action'. Эти специальные переменные могут использоваться для получения контроллера и/или действия, выбранных в URL. Переменная 'action' всегда должна быть определена в маршруте или как параметр по умолчанию. Переменная 'controller' по умолчанию будет IndexController, если не была определена.

$router->addRoute('user', ':controller/:action');

Адрес http://example.com/news/latest с таким маршрутом вызовет действие latestAction в контроллере NewsController.