| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 15103 -->
- <!-- 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 URL 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
- <code>http://martel.users.example.com</code> para ver la información
- acerca del usuario "martel".
- </para>
- <programlisting role="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: <code>:username</code>.
- Las partes estáticas son simplemente texto: <code>user</code>.
- </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
- <code>$hostnameRoute->chain($pathRoute);</code>. Haciendo esto,
- <code>$hostnameRoute</code> no se modifica, pero devuelve una nueva ruta
- (<classname>Zend_Controller_Router_Route_Chain</classname>), que luego
- puede ser entregada al router.
- </para>
- </sect3>
- <!--
- vim:se ts=4 sw=4 et:
- -->
|