| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- <?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>
|