Zend_Application-AvailableResources-Modules.xml 4.8 KB

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