Zend_Application-AvailableResources-Modules.xml 3.9 KB

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