Zend_Application-AvailableResources-Modules.xml 4.9 KB

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