/documentation/manual/de/module_specs/Zend_Application-AvailableResources-Frontcontroller.xml

https://github.com/decaoz/zf1 · XML · 154 lines · 131 code · 21 blank · 2 comment · 0 complexity · 5c1ae44d1000cb3ccc8b796631359edb MD5 · raw file

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