Zend_Controller_Router_Route_Hostname
Zend_Controller_Router_Route_Hostname
es la ruta
del framework en el servidor. Funciona similarmente a la standard route,
pero
funciona con el nombre del host de la
URL
llamada, en lugar del path.
Vamos a usar el ejemplo de la standard route y ver cómo se vería con
un nombre basado en
host. En lugar de llamar al usuario mediante un
path, quisiéramos que un usuario pueda llamar
a
http://martel.users.example.com
para ver la
información acerca del usuario "martel".
'profile',
'action' => 'userinfo'
)
);
$plainPathRoute = new Zend_Controller_Router_Route_Static('');
$router->addRoute('user', $hostnameRoute->chain($plainPathRoute);
]]>
El primer parámetro del constructor en
Zend_Controller_Router_Route_Hostname
es una
definición de ruta que será comparada con el nombre del host. Las
definiciones de ruta
consisten en partes estáticas y dinámicas separadas
por el carácter punto ('.'). Las partes
dinámicas, llamadas variables,
se marcan anteponiendo dos puntos (':') al nombre de la
variable:
:username
. Las partes estáticas son
simplemente texto:
user
.
Las rutas del nombre del host pueden, pero nunca deben ser utilizadas
así. La razón detrás de
esto es que la ruta del nombre del host
solamente, concordaría con cualquier path. Entonces,
lo que tiene que
hacer es encadenar una ruta del path a la ruta del nombre del host. Esto
se
hace como en el ejemplo llamando a
$hostnameRoute->chain($pathRoute);
.
Haciendo esto,
$hostnameRoute
no se modifica,
pero devuelve una nueva ruta
(
Zend_Controller_Router_Route_Chain
), que
luego puede ser entregada al router.