Zend_Application-AvailableResources-Frontcontroller.xml 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 24249 -->
  3. <!-- Reviewed: no -->
  4. <sect2 id="zend.application.available-resources.frontcontroller">
  5. <title>Zend_Application_Resource_Frontcontroller</title>
  6. <para>
  7. Probablemente el recurso más común que se carga con
  8. <classname>Zend_Application</classname>
  9. será el recurso Front Controller
  10. , que proporciona la habilidad para configurar
  11. <classname>Zend_Controller_Front</classname>
  12. . Este recurso ofrece
  13. la posibilidad de establecer parámetros arbitrarios del Front
  14. Controller,
  15. especificar plugins para inicializar, y mucho más.
  16. </para>
  17. <para>
  18. Una vez inicializado, el recurso asigna la propiedad del
  19. <varname>$frontController</varname>
  20. del bootstrap a la instancia
  21. <classname>Zend_Controller_Front</classname>
  22. .
  23. </para>
  24. <para>
  25. Las claves de configuración disponibles incluyen las siguientes,
  26. sin importar si son
  27. mayúsculas ó minúsculas:
  28. </para>
  29. <itemizedlist>
  30. <listitem>
  31. <para>
  32. <emphasis>
  33. <property>controllerDirectory</property>
  34. </emphasis>
  35. :: ya sea un valor de string
  36. especificando un único directorio controlador, o un array de
  37. pares de directorio módulo/controlador.
  38. </para>
  39. </listitem>
  40. <listitem>
  41. <para>
  42. <emphasis>
  43. <property>moduleControllerDirectoryName</property>
  44. </emphasis>
  45. : un valor de string
  46. indicando el subdirectorio bajo el cual un módulo contiene controladores.
  47. </para>
  48. </listitem>
  49. <listitem>
  50. <para>
  51. <emphasis>
  52. <property>moduleDirectory</property>
  53. </emphasis>
  54. : directorio bajo el cual pueden
  55. encontrarse los módulos.
  56. </para>
  57. </listitem>
  58. <listitem>
  59. <para>
  60. <emphasis>
  61. <property>defaultControllerName</property>
  62. </emphasis>
  63. : Nombre base del controlador por
  64. defecto (normalmente, "índex").
  65. </para>
  66. </listitem>
  67. <listitem>
  68. <para>
  69. <emphasis><property>defaultAction</property></emphasis>
  70. : nombre base de la acción por defecto
  71. (normalmente, "índex").
  72. </para>
  73. </listitem>
  74. <listitem>
  75. <para>
  76. <emphasis>
  77. <property>defaultModule</property>
  78. </emphasis>
  79. : nombre base del módulo por defecto
  80. (normalmente, "default").
  81. </para>
  82. </listitem>
  83. <listitem>
  84. <para>
  85. <emphasis>
  86. <property>baseUrl</property>
  87. </emphasis>
  88. : base explícita a la <acronym>URL</acronym> de la aplicación
  89. (normalmente auto-detect).
  90. </para>
  91. </listitem>
  92. <listitem>
  93. <para>
  94. <emphasis>
  95. <property>plugins</property>
  96. </emphasis>
  97. : array con los nombres de los plugins de las
  98. clases de los Front Controllers.
  99. El recurso instanciará a cada clase (sin argumentos al constructor)
  100. y luego registra la instancia con el Front Controller. If you want to
  101. register a plugin with a particular stack index, you need to provide an array with
  102. two keys <property>class</property> and <property>stackIndex</property>.
  103. </para>
  104. </listitem>
  105. <listitem>
  106. <para>
  107. <emphasis>
  108. <property>params</property>
  109. </emphasis>
  110. : array de pares clave/valor para registrarse con
  111. el front controller.
  112. </para>
  113. </listitem>
  114. <listitem>
  115. <para>
  116. <emphasis><property>returnresponse</property></emphasis>: whether or not to return
  117. the response object after dispatching the front controller. Value should be a
  118. boolean; by default, this is disabled.
  119. </para>
  120. </listitem>
  121. </itemizedlist>
  122. <para>
  123. Si se ingresa una clave no reconocida, ésta será registrada como un
  124. parámetro de Front
  125. Controller pasándolo a
  126. <methodname>setParam()</methodname>
  127. .
  128. </para>
  129. <example id="zend.application.available-resources.frontcontroller.configExample">
  130. <title>Ejemplo Front Controller resource configuration</title>
  131. <para>
  132. A continuación,
  133. <acronym>INI</acronym>
  134. es un snippet para mostrar cómo configurar
  135. el recurso Front Controller.
  136. </para>
  137. <programlisting language="ini"><![CDATA[
  138. [production]
  139. resources.frontController.controllerDirectory = APPLICATION_PATH . "/controllers"
  140. resources.frontController.moduleControllerDirectoryName = "actions"
  141. resources.frontController.moduleController = APPLICATION_PATH . "/modules"
  142. resources.frontController.defaultControllerName = "site"
  143. resources.frontController.defaultAction = "home"
  144. resources.frontController.defaultModule = "static"
  145. resources.frontController.baseUrl = "/subdir"
  146. resources.frontController.plugins.foo = "My_Plugin_Foo"
  147. resources.frontController.plugins.bar = "My_Plugin_Bar"
  148. resources.frontController.plugins.baz.class = "My_Plugin_Baz"
  149. resources.frontController.plugins.baz.stackIndex = 123
  150. resources.frontController.returnresponse = 1
  151. resources.frontController.env = APPLICATION_ENV
  152. ; The following proxies to:
  153. ; Zend_Controller_Action_HelperBroker::addPath('Helper_Path', $helperPrefix);
  154. resources.frontController.actionHelperPaths.HELPER_Prefix = "My/Helper/Path"
  155. ]]></programlisting>
  156. </example>
  157. <example id="zend.application.available-resources.frontcontroller.frontControllerPropertyExample">
  158. <title>Recuperar el Front Controller de su arranque (bootstrap)</title>
  159. <para>
  160. Una vez que el recurso de su Front Controller ha sido inicializado,
  161. se puede recuperar la
  162. instancia de Front Controller a través de la
  163. propiedad
  164. <varname>$frontController</varname>
  165. de su bootstrap.
  166. </para>
  167. <programlisting language="php"><![CDATA[
  168. $bootstrap->bootstrap('frontController');
  169. $front = $bootstrap->frontController;
  170. ]]></programlisting>
  171. </example>
  172. </sect2>