Zend_Application-AvailableResources-Modules.xml 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  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> est utilisé pour initialiser
  8. les modules de votre application. Si votre module possède un fichier
  9. <filename>Bootstrap.php</filename> à sa racine, et que celui-ci contient une classe nommée
  10. <classname>Module_Bootstrap</classname> (où "Module" est le nom du module),
  11. alors celle-ci sera utiliser pour lancer votre module.
  12. </para>
  13. <para>
  14. Par défaut, une instance de
  15. <classname>Zend_Application_Module_Autoloader</classname> sera créée pour le module en
  16. question, utilisant le nom du module et son dossier pour s'initialiser.
  17. </para>
  18. <para>
  19. Puisque la ressource Modules ne prend pas d'argument par défaut, pour l'activer via la
  20. configuration, vous devez créer un tableau vide. En configuration de type
  21. <acronym>INI</acronym> cela ressemblerait à ceci&#160;:
  22. </para>
  23. <programlisting language="ini"><![CDATA[
  24. resources.modules[] =
  25. ]]></programlisting>
  26. <para>
  27. En configuration de type <acronym>XML</acronym> cela ressemblerait à ceci&#160;:
  28. </para>
  29. <programlisting language="xml"><![CDATA[
  30. <resources>
  31. <modules>
  32. <!-- Emplacement pour s'assurer qu'un tableau est créé -->
  33. <placeholder />
  34. </modules>
  35. </resources>
  36. ]]></programlisting>
  37. <para>
  38. En utilisant un tableau <acronym>PHP</acronym>, il suffit de le créer comme un tableau
  39. vide&#160;:
  40. </para>
  41. <programlisting language="php"><![CDATA[
  42. $options = array(
  43. 'resources' => array(
  44. 'modules' => array()
  45. )
  46. );
  47. ]]></programlisting>
  48. <note>
  49. <title>Dépendance envers le contrôleur frontal</title>
  50. <para>
  51. La ressource Modules possède une dépendance envers <link
  52. linkend="zend.application.available-resources.frontcontroller">la ressource Front
  53. Controller</link>. Vous pouvez bien sûr proposer votre propre implémentation de la
  54. ressource du contrôleur frontal, si tant est que sa classe se termine par
  55. "Frontcontroller", ou, si vous choisissez d'utiliser une méthode d'initialisation,
  56. celle-ci doit être "_initFrontController".
  57. </para>
  58. </note>
  59. <example id="zend.application.available-resources.modules.configExample">
  60. <title>Configurer les modules</title>
  61. <para>
  62. Vous pouvez spécifier la configuration en utilisant le nom du module comme préfixe
  63. de section dans le fichier de configuration.
  64. </para>
  65. <para>
  66. Par exemple, supposons que vous possédiez un module appelé "news". Voici des exemples
  67. <acronym>INI</acronym> et <acronym>XML</acronym> de fichiers de configuration pour ce
  68. module.
  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>Récupérer un bootstrap de module</title>
  102. <para>
  103. Il peut être utile de pouvoir récupérer l'objet bootstrap de votre module, pour en
  104. exécuter par exemple des méthodes spécifiques, ou encore pour en récupérer
  105. l'autoloader. La méthode <methodname>getExecutedBootstraps()</methodname> peut être
  106. utilisée dans ce cas là, elle s'applique sur un objet ressource de modules.
  107. </para>
  108. <programlisting language="php"><![CDATA[
  109. $resource = $bootstrap->getPluginResource('modules');
  110. $moduleBootstraps = $resource->getExecutedBootstraps();
  111. $newsBootstrap = $moduleBootstraps['news'];
  112. ]]></programlisting>
  113. </example>
  114. </sect2>