Zend_Application-AvailableResources-Modules.xml 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 20763 -->
  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.
  21. Since the Modules resource does not take any arguments by default, in order to enable it
  22. via configuration, you need to create it as an empty array. En configuration de type
  23. <acronym>INI</acronym> cela ressemblerait à ceci&#160;:
  24. </para>
  25. <programlisting language="ini"><![CDATA[
  26. resources.modules[] =
  27. ]]></programlisting>
  28. <para>
  29. En configuration de type <acronym>XML</acronym> cela ressemblerait à ceci&#160;:
  30. </para>
  31. <programlisting language="xml"><![CDATA[
  32. <resources>
  33. <modules>
  34. <!-- Emplacement pour s'assurer qu'un tableau est créé -->
  35. <placeholder />
  36. </modules>
  37. </resources>
  38. ]]></programlisting>
  39. <para>
  40. En utilisant un tableau <acronym>PHP</acronym>, il suffit de le créer comme un tableau
  41. vide&#160;:
  42. </para>
  43. <programlisting language="php"><![CDATA[
  44. $options = array(
  45. 'resources' => array(
  46. 'modules' => array()
  47. )
  48. );
  49. ]]></programlisting>
  50. <note>
  51. <title>Dépendance envers le contrôleur frontal</title>
  52. <para>
  53. La ressource Modules possède une dépendance envers <link
  54. linkend="zend.application.available-resources.frontcontroller">la ressource Front
  55. Controller</link>. Vous pouvez bien sûr proposer votre propre implémentation de la
  56. ressource du contrôleur frontal, si tant est que sa classe se termine par
  57. "Frontcontroller", ou, si vous choisissez d'utiliser une méthode d'initialisation,
  58. celle-ci doit être "_initFrontController".
  59. </para>
  60. </note>
  61. <example id="zend.application.available-resources.modules.configExample">
  62. <title>Configurer les modules</title>
  63. <para>
  64. Vous pouvez spécifier la configuration en utilisant le nom du module comme préfixe
  65. de section dans le fichier de configuration.
  66. </para>
  67. <para>
  68. Par exemple, supposons que vous possédiez un module appelé "news". Voici des exemples
  69. <acronym>INI</acronym> et <acronym>XML</acronym> de fichiers de configuration pour ce
  70. module.
  71. </para>
  72. <programlisting language="ini"><![CDATA[
  73. [production]
  74. news.resources.db.adapter = "pdo_mysql"
  75. news.resources.db.params.host = "localhost"
  76. news.resources.db.params.username = "webuser"
  77. news.resources.db.params.password = "XXXXXXX"
  78. news.resources.db.params.dbname = "news"
  79. ]]></programlisting>
  80. <programlisting language="xml"><![CDATA[
  81. <?xml version="1.0"?>
  82. <config>
  83. <production>
  84. <news>
  85. <resources>
  86. <db>
  87. <adapter>pdo_mysql</adapter>
  88. <params>
  89. <host>localhost</host>
  90. <username>webuser</username>
  91. <password>XXXXXXX</password>
  92. <dbname>news</dbname>
  93. </params>
  94. <isDefaultAdapter>true</isDefaultAdapter>
  95. </db>
  96. </resources>
  97. </news>
  98. </production>
  99. </config>
  100. ]]></programlisting>
  101. </example>
  102. <example id="zend.application.available-resources.modules.retrieveBootstrapExample">
  103. <title>Récupérer un bootstrap de module</title>
  104. <para>
  105. Il peut être utile de pouvoir récupérer l'objet bootstrap de votre module, pour en
  106. exécuter par exemple des méthodes spécifiques, ou encore pour en récupérer
  107. l'autoloader. La méthode <methodname>getExecutedBootstraps()</methodname> peut être
  108. utilisée dans ce cas là, elle s'applique sur un objet ressource de modules.
  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>