Zend_Application-AvailableResources-Frontcontroller.xml 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 22741 -->
  3. <!-- Reviewed: no -->
  4. <sect2 id="zend.application.available-resources.frontcontroller">
  5. <title>Zend_Application_Resource_Frontcontroller</title>
  6. <para>
  7. Die warscheinlich am meisten verwendete Ressource die man mit
  8. <classname>Zend_Application</classname>
  9. verwenden wird, ist die Front Controller Ressource,
  10. die eine Möglichkeit bietet den
  11. <classname>Zend_Controller_Front</classname>
  12. zu
  13. konfigurieren. Diese Ressource bietet die Möglichkeit verschiedenste Front
  14. Controller
  15. Parameter zu setzen, Plugins zu spezifizieren die initialisiert werden sollen,
  16. und vieles
  17. mehr.
  18. </para>
  19. <para>
  20. Sobald Sie initialisiert wurde, fügt die Ressource die
  21. <varname>$frontController</varname>
  22. Eigenschaft vom Bootstrap in die
  23. <classname>Zend_Controller_Front</classname>
  24. Instanz hinzu.
  25. </para>
  26. <para>
  27. Die folgenden Konfigurationsschlüssel sind vorhanden, und sind abhängig
  28. von der
  29. Groß- oder Kleinschreibung:
  30. </para>
  31. <itemizedlist>
  32. <listitem>
  33. <para>
  34. <emphasis>
  35. <property>controllerDirectory</property>
  36. </emphasis>
  37. : Entweder ein
  38. Stringwert der ein einzelnes Controller Verzeichnis spezifiziert, oder ein
  39. Array von
  40. Modul und Controller Verzeichnis Paaren.
  41. </para>
  42. </listitem>
  43. <listitem>
  44. <para>
  45. <emphasis>
  46. <property>moduleControllerDirectoryName</property>
  47. </emphasis>
  48. : Ein
  49. Stringwert der auf ein Unterverzeichnis unter einem Modul zeigt, das
  50. Controller
  51. enthält.
  52. </para>
  53. </listitem>
  54. <listitem>
  55. <para>
  56. <emphasis>
  57. <property>moduleDirectory</property>
  58. </emphasis>
  59. : Verzeichnis in dem Module
  60. gefunden werden können.
  61. </para>
  62. </listitem>
  63. <listitem>
  64. <para>
  65. <emphasis>
  66. <property>defaultControllerName</property>
  67. </emphasis>
  68. : Basisname des
  69. Standard Controllers (normalerweise "index").
  70. </para>
  71. </listitem>
  72. <listitem>
  73. <para>
  74. <emphasis>
  75. <property>defaultAction</property>
  76. </emphasis>
  77. : Basisname der Standard
  78. Aktion (normalerweise "index").
  79. </para>
  80. </listitem>
  81. <listitem>
  82. <para>
  83. <emphasis>
  84. <property>defaultModule</property>
  85. </emphasis>
  86. : Basisname des Standard
  87. Moduls (normalerweise "default").
  88. </para>
  89. </listitem>
  90. <listitem>
  91. <para>
  92. <emphasis>
  93. <property>baseUrl</property>
  94. </emphasis>
  95. : Explizite Basis
  96. <acronym>URL</acronym>
  97. zur Anwendung (normalerweise automatisch erkannt).
  98. </para>
  99. </listitem>
  100. <listitem>
  101. <para>
  102. <emphasis>
  103. <property>plugins</property>
  104. </emphasis>
  105. : Array von Front Controller Plugin
  106. Klassennamen. Die Ressource wird jede Klasse instanziieren (ohne Contructor
  107. Argumente) und die Instanz dann mit dem Front Controller
  108. registrieren. Wenn man ein
  109. Plugin mit einem speziellen Stackindex registriert muss man ein Array mit
  110. den zwei
  111. Schlüsseln
  112. <property>class</property>
  113. und
  114. <property>stackIndex</property>
  115. angeben.
  116. </para>
  117. </listitem>
  118. <listitem>
  119. <para>
  120. <emphasis>
  121. <property>params</property>
  122. </emphasis>
  123. : Array von Schlüssel und Wert
  124. Paaren die mit dem Front Controller registriert werden sollen.
  125. </para>
  126. </listitem>
  127. <listitem>
  128. <para>
  129. <emphasis>
  130. <property>returnresponse</property>
  131. </emphasis>
  132. : Ob das Response Objekt nach dem Dispatchen des Front Controllers
  133. zurückgegeben wird oder nicht. Der Wert sollte ein Boolean sein;
  134. standardmäßig ist er deaktiviert.
  135. </para>
  136. </listitem>
  137. </itemizedlist>
  138. <para>
  139. Wenn ein Schlüssel übergeben wird der nicht erkannt wird, wird dieser
  140. als Parameter beim
  141. Front Controller registriert, indem er an
  142. <methodname>setParam()</methodname>
  143. übergeben
  144. wird.
  145. </para>
  146. <example
  147. id="zend.application.available-resources.frontcontroller.configExample">
  148. <title>Beispiel der Konfiguration einer Front Controller Ressource</title>
  149. <para>
  150. Anbei ist ein Beispiel eines
  151. <acronym>INI</acronym>
  152. Abschnitts der zeigt wie die Front
  153. Controller Ressource konfiguriert werden kann.
  154. </para>
  155. <programlisting language="ini"><![CDATA[
  156. [production]
  157. resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
  158. resources.frontController.moduleControllerDirectoryName = "actions"
  159. resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
  160. resources.frontController.defaultControllerName = "site"
  161. resources.frontController.defaultAction = "home"
  162. resources.frontController.defaultModule = "static"
  163. resources.frontController.baseUrl = "/subdir"
  164. resources.frontController.plugins.foo = "My_Plugin_Foo"
  165. resources.frontController.plugins.bar = "My_Plugin_Bar"
  166. resources.frontController.plugins.baz.class = "My_Plugin_Baz"
  167. resources.frontController.plugins.baz.stackIndex = 123
  168. resources.frontController.returnresponse = 1
  169. resources.frontController.env = APPLICATION_ENV
  170. ; Das folgende verweist auf:
  171. ; Zend_Controller_Action_HelperBroker::addPath('Helper_Path', $helperPrefix);
  172. resources.frontController.actionHelperPaths.HELPER_Prefix = "My/Helper/Path"
  173. ]]></programlisting>
  174. </example>
  175. <example
  176. id="zend.application.available-resources.frontcontroller.propertyExample">
  177. <title>Empfangen des Front Controllers im eigenen Bootstrap</title>
  178. <para>
  179. Sobald die Front Controller Ressource initialisiert wurde, kann die
  180. Front Controller
  181. Instanz über die
  182. <varname>$frontController</varname>
  183. Eigenschaft der Bootstraps geholt
  184. werden.
  185. </para>
  186. <programlisting language="php"><![CDATA[
  187. $bootstrap->bootstrap('frontController');
  188. $front = $bootstrap->frontController;
  189. ]]></programlisting>
  190. </example>
  191. </sect2>