Основой 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
.