| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 17592 -->
- <!-- Reviewed: no -->
- <sect3 id="zend.controller.router.routes.hostname">
- <title>Zend_Controller_Router_Route_Hostname</title>
- <para>
- <classname>Zend_Controller_Router_Route_Hostname</classname>
- es la ruta
- del framework en el servidor. Funciona similarmente a la standard route,
- pero
- funciona con el nombre del host de la
- <acronym>URL</acronym>
- llamada, en lugar del path.
- </para>
- <para>
- 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
- <filename>http://martel.users.example.com</filename>
- para ver la
- información acerca del usuario "martel".
- </para>
- <programlisting language="php"><![CDATA[
- $hostnameRoute = new Zend_Controller_Router_Route_Hostname(
- ':username.users.example.com',
- array(
- 'controller' => 'profile',
- 'action' => 'userinfo'
- )
- );
- $plainPathRoute = new Zend_Controller_Router_Route_Static('');
- $router->addRoute('user', $hostnameRoute->chain($plainPathRoute);
- ]]></programlisting>
- <para>
- El primer parámetro del constructor en
- <classname>Zend_Controller_Router_Route_Hostname</classname>
- 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:
- <command>:username</command>
- . Las partes estáticas son
- simplemente texto:
- <command>user</command>
- .
- </para>
- <para>
- 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
- <command>$hostnameRoute->chain($pathRoute);</command>
- .
- Haciendo esto,
- <varname>$hostnameRoute</varname>
- no se modifica,
- pero devuelve una nueva ruta
- (
- <classname>Zend_Controller_Router_Route_Chain</classname>
- ), que
- luego puede ser entregada al router.
- </para>
- </sect3>
|