Zend_Application-AvailableResources-Frontcontroller.xml 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 20763 -->
  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.
  72. </para>
  73. </listitem>
  74. <listitem>
  75. <para>
  76. <emphasis><property>params</property></emphasis>: Array von Schlüssel und Wert
  77. Paaren die mit dem Front Controller registriert werden sollen.
  78. </para>
  79. </listitem>
  80. </itemizedlist>
  81. <para>
  82. Wenn ein Schlüssel übergeben wird der nicht erkannt wird, wird dieser als Parameter beim
  83. Front Controller registriert, indem er an <methodname>setParam()</methodname> übergeben
  84. wird.
  85. </para>
  86. <example id="zend.application.available-resources.frontcontroller.configExample">
  87. <title>Beispiel der Konfiguration einer Front Controller Ressource</title>
  88. <para>
  89. Anbei ist ein Beispiel eines <acronym>INI</acronym> Abschnitts der zeigt wie die Front
  90. Controller Ressource konfiguriert werden kann.
  91. </para>
  92. <programlisting language="ini"><![CDATA[
  93. [production]
  94. resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
  95. resources.frontController.moduleControllerDirectoryName = "actions"
  96. resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
  97. resources.frontController.defaultControllerName = "site"
  98. resources.frontController.defaultAction = "home"
  99. resources.frontController.defaultModule = "static"
  100. resources.frontController.baseUrl = "/subdir"
  101. resources.frontController.plugins.foo = "My_Plugin_Foo"
  102. resources.frontController.plugins.bar = "My_Plugin_Bar"
  103. resources.frontController.env = APPLICATION_ENV
  104. ]]></programlisting>
  105. </example>
  106. <example id="zend.application.available-resources.frontcontroller.propertyExample">
  107. <title>Empfangen des Front Controllers im eigenen Bootstrap</title>
  108. <para>
  109. Sobald die Front Controller Ressource initialisiert wurde, kann die Front Controller
  110. Instanz über die <varname>$frontController</varname> Eigenschaft der Bootstraps geholt
  111. werden.
  112. </para>
  113. <programlisting language="php"><![CDATA[
  114. $bootstrap->bootstrap('frontController');
  115. $front = $bootstrap->frontController;
  116. ]]></programlisting>
  117. </example>
  118. </sect2>