Zend_Controller_Router_Route_Hostname
Zend_Controller_Router_Route_Hostname является
маршрутом, основанным на имени хоста. Он работает аналогично
стандартному маршруту, но использует имя хоста в URL вместо пути.
Возьмем пример из описания стандартного маршрута и посмотрим, как
это будет выглядеть при использовании имени хоста. Вместо того, чтобы
указывать пользователя через путь, нам требуется, чтобы можно было
набрать URL вида http://martel.users.example.com для
того, чтобы увидеть информацию о пользователе "martel":
'profile',
'action' => 'userinfo'
)
);
$plainPathRoute = new Zend_Controller_Router_Route_Static('');
$router->addRoute('user', $hostnameRoute->chain($plainPathRoute);
]]>
Первым параметром в конструкторе
Zend_Controller_Router_Route_Hostname является
определение маршрута, которое будет сопоставляться с именем хоста.
Определения маршрутов содержат статические и динамические части,
разделенные точкой ('.'). Динамические части, называемые
переменными, помечаются знаком двоеточия:
:username. Статические части являются обычным текстом:
user.
Технически маршруты по имени хоста могут использоваться сами по
себе, но этого никогда не следует делать по той причине, что
сам по себе такой маршрут может соответствовать любому
пути. Поэтому нужно объединять маршруты по имени хоста
с маршрутами по пути. Это можно делать так, как
показано в примере выше - путем вызова
$hostnameRoute->chain($pathRoute);.
При этом $hostnameRoute не изменяется, но будет
возвращен новый маршрут
(Zend_Controller_Router_Route_Chain), который
может быть передан маршрутизатору.