Zend_Application-AvailableResources-Modules.xml 3.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 16179 -->
  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. <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 oder 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 <acronym>INI</acronym> und <acronym>XML</acronym> Beispiele die eine
  39. Konfiguration von Ressourcen in diesem Modul 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. <methodname>getExecutedBootstraps()</methodname> Methode der Modul Ressource verwendet
  79. wird.
  80. </para>
  81. <programlisting language="php"><![CDATA[
  82. $resource = $bootstrap->getPluginResource('modules');
  83. $moduleBootstraps = $resource->getExecutedBootstraps();
  84. $newsBootstrap = $moduleBootstraps['news'];
  85. ]]></programlisting>
  86. </example>
  87. </sect2>