Zend_Application-AvailableResources-Modules.xml 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 20763 -->
  3. <!-- Reviewed: no -->
  4. <sect2 id="zend.application.available-resources.modules">
  5. <title>Zend_Application_Resource_Modules</title>
  6. <para>
  7. <classname>Zend_Application_Resource_Modules</classname>
  8. wird verwendet im eigene
  9. Anwendungsmodule zu initialisieren. Wenn das Modul eine
  10. <filename>Bootstrap.php</filename>
  11. Datei in seinem Root hat, und es eine Klasse die
  12. <classname>Module_Bootstrap</classname>
  13. heißt enthält (wobei "Module" der Modulname ist), dann wird diese
  14. Klasse verwendet um das
  15. Modul zu bootstrappen.
  16. </para>
  17. <para>
  18. Standardmäßig wird eine Instanz vom
  19. <classname>Zend_Application_Module_Autoloader</classname>
  20. für das Modul erstellt, indem der
  21. Modulname und das Verzeichnis dazu verwendet werden sie zu initialisieren.
  22. </para>
  23. <para>
  24. Da die Modul Ressourcen standardmäßig keine Argumente entgegen nehmen
  25. muss man, um das
  26. über die Konfiguration zu gestatten, diese als leeres Array erstellen. In
  27. der
  28. <acronym>INI</acronym>
  29. Stil Konfiguration sieht das etwa so aus:
  30. </para>
  31. <programlisting language="ini"><![CDATA[
  32. resources.modules[] =
  33. ]]></programlisting>
  34. <para>
  35. In
  36. <acronym>XML</acronym>
  37. Stil Konfiguration sieht das etwa so aus:
  38. </para>
  39. <programlisting language="xml"><![CDATA[
  40. <resources>
  41. <modules>
  42. <!-- Platzhlter um sicherzustellen das ein Array erstellt wird -->
  43. <placeholder />
  44. </modules>
  45. </resources>
  46. ]]></programlisting>
  47. <para>
  48. Bei Verwendung eines
  49. <acronym>PHP</acronym>
  50. Arrays, einfach Erstellen indem ein leeres
  51. Array verwendet wird:
  52. </para>
  53. <programlisting language="php"><![CDATA[
  54. $options = array(
  55. 'resources' => array(
  56. 'modules' => array(),
  57. ),
  58. );
  59. ]]></programlisting>
  60. <note>
  61. <title>Abhängigkeiten der Front Controller Ressource</title>
  62. <para>
  63. Die Module Ressource hat eine Abhängigkeit zur
  64. <link linkend="zend.application.available-resources.frontcontroller">Front Controller
  65. Ressource</link>
  66. . Man kann natürlich seine eigenen Ersatz für diese Ressource, über
  67. eine eigene Front Controller Ressource Klasse, anbieten oder eine
  68. Initialisierungsmethode für eine Klasse -- solange die Ressource
  69. Plugin Klasse mit
  70. "Frontcontroller" endet, oder die Initialisierungsmethode "_initFrontController"
  71. heißt (abhängig von der Groß- und Kleinschreibung).
  72. </para>
  73. </note>
  74. <example id="zend.application.available-resources.modules.configExample">
  75. <title>Module konfigurieren</title>
  76. <para>
  77. Man kann eine modul-spezifische Konfiguration spezifizieren indem der
  78. Modulname als
  79. Präfix oder Unter-Sektion in der Konfigurationsdatei verwendet wird.
  80. </para>
  81. <para>
  82. Nehmen wir als Beispiel an, das die eigene Anwendung ein "news" Modul
  83. hat. Nachfolgend
  84. sind die
  85. <acronym>INI</acronym>
  86. und
  87. <acronym>XML</acronym>
  88. Beispiele die eine
  89. Konfiguration von Ressourcen in diesem Modul zeigen.
  90. </para>
  91. <programlisting language="ini"><![CDATA[
  92. [production]
  93. news.resources.db.adapter = "pdo_mysql"
  94. news.resources.db.params.host = "localhost"
  95. news.resources.db.params.username = "webuser"
  96. news.resources.db.params.password = "XXXXXXX"
  97. news.resources.db.params.dbname = "news"
  98. ]]></programlisting>
  99. <programlisting language="xml"><![CDATA[
  100. <?xml version="1.0"?>
  101. <config>
  102. <production>
  103. <news>
  104. <resources>
  105. <db>
  106. <adapter>pdo_mysql</adapter>
  107. <params>
  108. <host>localhost</host>
  109. <username>webuser</username>
  110. <password>XXXXXXX</password>
  111. <dbname>news</dbname>
  112. </params>
  113. <isDefaultAdapter>true</isDefaultAdapter>
  114. </db>
  115. </resources>
  116. </news>
  117. </production>
  118. </config>
  119. ]]></programlisting>
  120. </example>
  121. <example
  122. id="zend.application.available-resources.modules.retrieveBootstrapExample">
  123. <title>Eine spezielle Modul Bootstrap erhalten</title>
  124. <para>
  125. Manchmal will man ein Bootstrap Objekt für ein spezifisches Modul
  126. erhalten --
  127. möglicherweise um andere Bootstrap Methoden auszuführen, oder um den Autoloader zu
  128. holen damit er konfiguriert werden kann. Das kann man erreichen indem
  129. die
  130. <methodname>getExecutedBootstraps()</methodname>
  131. Methode der Modul Ressource verwendet
  132. wird.
  133. </para>
  134. <programlisting language="php"><![CDATA[
  135. $resource = $bootstrap->getPluginResource('modules');
  136. $moduleBootstraps = $resource->getExecutedBootstraps();
  137. $newsBootstrap = $moduleBootstraps['news'];
  138. ]]></programlisting>
  139. </example>
  140. </sect2>