2
0

Zend_Controller-Router-Route-Hostname.xml 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- Reviewed: no -->
  3. <sect3 id="zend.controller.router.routes.hostname">
  4. <title>Zend_Controller_Router_Route_Hostname</title>
  5. <para>
  6. <classname>Zend_Controller_Router_Route_Hostname</classname> es la ruta
  7. del framework en el servidor. Funciona similarmente a la standard route,
  8. pero funciona con el nombre del host de la URL llamada, en lugar del path.
  9. </para>
  10. <para>
  11. Vamos a usar el ejemplo de la standard route y ver cómo se vería con un
  12. nombre basado en host. En lugar de llamar al usuario mediante un path,
  13. quisiéramos que un usuario pueda llamar a
  14. <code>http://martel.users.example.com</code> para ver la información
  15. acerca del usuario "martel".
  16. </para>
  17. <programlisting role="php"><![CDATA[
  18. $hostnameRoute = new Zend_Controller_Router_Route_Hostname(
  19. ':username.users.example.com',
  20. array(
  21. 'controller' => 'profile',
  22. 'action' => 'userinfo'
  23. )
  24. );
  25. $plainPathRoute = new Zend_Controller_Router_Route_Static('');
  26. $router->addRoute('user', $hostnameRoute->chain($plainPathRoute);
  27. ]]></programlisting>
  28. <para>
  29. El primer parámetro del constructor en
  30. <classname>Zend_Controller_Router_Route_Hostname</classname>
  31. es una definición de ruta que será comparada con el nombre del host.
  32. Las definiciones de ruta consisten en partes estáticas y dinámicas
  33. separadas por el carácter punto ('.').
  34. Las partes dinámicas, llamadas variables, se marcan anteponiendo
  35. dos puntos (':') al nombre de la variable: <code>:username</code>.
  36. Las partes estáticas son simplemente texto: <code>user</code>.
  37. </para>
  38. <para>
  39. Las rutas del nombre del host pueden, pero nunca deben ser utilizadas así.
  40. La razón detrás de esto es que la ruta del nombre del host solamente,
  41. concordaría con cualquier path. Entonces, lo que tiene que hacer
  42. es encadenar una ruta del path a la ruta del nombre del host.
  43. Esto se hace como en el ejemplo llamando a
  44. <code>$hostnameRoute->chain($pathRoute);</code>. Haciendo esto,
  45. <code>$hostnameRoute</code> no se modifica, pero devuelve una nueva ruta
  46. (<classname>Zend_Controller_Router_Route_Chain</classname>), que luego
  47. puede ser entregada al router.
  48. </para>
  49. </sect3>
  50. <!--
  51. vim:se ts=4 sw=4 et:
  52. -->