Zend_Controller-Router-Route-Hostname.xml 2.6 KB

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