Zend_Application-AvailableResources-Modules.xml 3.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 15617 -->
  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 <code>Module_Bootstrap</code> heißt
  10. enthält (wobei "Module" der Modulname ist), dann wird diese Klasse verwendet um das Modul
  11. 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. <note>
  19. <title>Abhängigkeiten der Front Controller Ressource</title>
  20. <para>
  21. Die Module Ressource hat eine Abhängigkeit zur
  22. <link linkend="zend.application.available-resources.frontcontroller">Front Controller
  23. Ressource</link>. Man kann natürlich seine eigenen Ersatz für diese Ressource, über
  24. eine eigene Front Controller Ressource Klasse, anbieten oder eine
  25. Initialisierungsmethode für eine Klasse -- solange die Ressource Plugin Klasse mit
  26. "Frontcontroller" endet, oder die Initialisierungsmethode "_initFrontController"
  27. heißt (abhängig von der Groß-/Kleinschreibung).
  28. </para>
  29. </note>
  30. <example id="zend.application.available-resources.modules.configExample">
  31. <title>Module konfigurieren</title>
  32. <para>
  33. Man kann eine modul-spezifische Konfiguration spezifizieren indem der Modulname als
  34. Präfix/Unter-Sektion in der Konfigurationsdatei verwendet wird.
  35. </para>
  36. <para>
  37. Nehmen wir als Beispiel an, das die eigene Anwendung ein "news" Modul hat. Nachfolgend
  38. sind die INI und XML Beispiele die eine Konfiguration von Ressourcen in diesem Modul
  39. zeigen.
  40. </para>
  41. <programlisting language="ini"><![CDATA[
  42. [production]
  43. news.resources.db.adapter = "pdo_mysql"
  44. news.resources.db.params.host = "localhost"
  45. news.resources.db.params.username = "webuser"
  46. news.resources.db.params.password = "XXXXXXX"
  47. news.resources.db.params.dbname = "news"
  48. news.resources.layout.layout = "news"
  49. ]]></programlisting>
  50. <programlisting language="xml"><![CDATA[
  51. <?xml version="1.0"?>
  52. <config>
  53. <production>
  54. <news>
  55. <resources>
  56. <db>
  57. <adapter>pdo_mysql</adapter>
  58. <params>
  59. <host>localhost</host>
  60. <username>webuser</username>
  61. <password>XXXXXXX</password>
  62. <dbname>news</dbname>
  63. </params>
  64. <isDefaultAdapter>true</isDefaultAdapter>
  65. </db>
  66. </resources>
  67. </news>
  68. </production>
  69. </config>
  70. ]]></programlisting>
  71. </example>
  72. <example id="zend.application.available-resources.modules.retrieveBootstrapExample">
  73. <title>Eine spezielle Modul Bootstrap erhalten</title>
  74. <para>
  75. Manchmal will man ein Bootstrap Objekt für ein spezifisches Modul erhalten --
  76. möglicherweise um andere Bootstrap Methoden auszuführen, oder um den Autoloader zu
  77. holen damit er konfiguriert werden kann. Das kann man erreichen indem die
  78. <code>getExecutedBootstraps()</code> Methode der Modul Ressource verwendet wird.
  79. </para>
  80. <programlisting language="php"><![CDATA[
  81. $resource = $bootstrap->getPluginResource('modules');
  82. $moduleBootstraps = $resource->getExecutedBootstraps();
  83. $newsBootstrap = $moduleBootstraps['news'];
  84. ]]></programlisting>
  85. </example>
  86. </sect2>