Zend_Application-AvailableResources-Frontcontroller.xml 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 24997 -->
  3. <!-- Reviewed: no -->
  4. <sect2 id="zend.application.available-resources.frontcontroller">
  5. <title>Zend_Application_Resource_Frontcontroller</title>
  6. <para>
  7. Probablement la ressource que vous allez le plus communément charger avec
  8. <classname>Zend_Application</classname> sera la ressource de contrôleur frontal qui fournit
  9. la possibilité de configurer <classname>Zend_Controller_Front</classname>. Cette ressource
  10. permet de spécifier n'importe quel paramètre du contrôleur frontal, de spécifier les plugins
  11. à initialiser, et bien plus...
  12. </para>
  13. <para>
  14. Une fois initialisée, la ressource assigne la propriété <varname>$frontController</varname>
  15. du fichier d'initialisation à l'instance <classname>Zend_Controller_Front</classname>.
  16. </para>
  17. <para>
  18. Les clés de configuration disponibles incluent les suivantes et sont sensibles à la
  19. casse&#160;:
  20. </para>
  21. <itemizedlist>
  22. <listitem><para>
  23. <emphasis><property>controllerDirectory</property></emphasis>&#160;: une chaîne de
  24. caractères spécifiant un seul dossier de contrôleurs, ou un tableau associant un
  25. nom de module et un dossier de contrôleurs.
  26. </para></listitem>
  27. <listitem><para>
  28. <emphasis><property>moduleControllerDirectoryName</property></emphasis>&#160;: une
  29. chaîne de caractères indiquant un sous-dossier dans ce module qui contient les
  30. contrôleurs.
  31. </para></listitem>
  32. <listitem><para>
  33. <emphasis><property>moduleDirectory</property></emphasis>&#160;: un dossier dans
  34. lequel tous les modules peuvent être trouvés.
  35. </para></listitem>
  36. <listitem><para>
  37. <emphasis><property>defaultControllerName</property></emphasis>&#160;: nom du
  38. contrôleur par défaut (normalement "index").
  39. </para></listitem>
  40. <listitem><para>
  41. <emphasis><property>defaultAction</property></emphasis>&#160;: nom de l'action par
  42. défaut (normalement "index").
  43. </para></listitem>
  44. <listitem><para>
  45. <emphasis><property>defaultModule</property></emphasis>&#160;: nom du module par
  46. défaut (normalement "default").
  47. </para></listitem>
  48. <listitem><para>
  49. <emphasis><property>baseUrl</property></emphasis>&#160;: <acronym>URL</acronym>
  50. de base explicite vers l'application (normalement auto-détecté).
  51. </para></listitem>
  52. <listitem><para>
  53. <emphasis><property>plugins</property></emphasis>&#160;: tableau de nom de classe
  54. de plugins de contrôleurs. La ressource instanciera chaque classe (sans arguments
  55. de constructeur) et les enregistrera dans le contrôleur frontal. Si vous souhaitez
  56. enregistrer un plugin avec un index particulier dans la pile des plugins, vous
  57. devez fournir un tableau avec deux clés <property>class</property> et
  58. <property>stackIndex</property>.
  59. </para></listitem>
  60. <listitem><para>
  61. <emphasis><property>params</property></emphasis>&#160;: tableau de paires
  62. clés&#160;/&#160;valeurs à enregistrer dans le contrôleur frontal.
  63. </para></listitem>
  64. <listitem>
  65. <para>
  66. <emphasis><property>returnresponse</property></emphasis>&#160;: active ou non le
  67. retour de l'objet de réponse après la distribution du contrôleur frontal. Cette
  68. valeur devrait être booléenne&#160;; par défaut, ceci est désactivé.
  69. </para>
  70. </listitem>
  71. <listitem>
  72. <para>
  73. <emphasis><property>dispatcher</property></emphasis>>&#160;: permet de surcharger
  74. le distributeur par défaut. Possède 2 sous-clés, <property>class</property> (le
  75. nom de classe du nouveau distributeur) et <property>params</property>, un tableau
  76. de paramètres à fournir au constructeur du distributeur.
  77. </para>
  78. <example id="zend.application.available-resources.frontcontroller.configExample.1">
  79. <title>Surcharger le distributeur</title>
  80. <programlisting language="ini"><![CDATA[
  81. [production]
  82. resources.frontController.dispatcher.class = "My_Custom_Dispatcher"
  83. resources.frontController.dispatcher.params.foo = "bar"
  84. resources.frontController.dispatcher.params.baz = "grok"
  85. ]]></programlisting>
  86. </example>
  87. </listitem>
  88. </itemizedlist>
  89. <para>
  90. Si une clé non-connue est fournie, elle sera enregistrée comme paramètre du contrôleur
  91. frontal en la fournissant à <methodname>setParam()</methodname>.
  92. </para>
  93. <example id="zend.application.available-resources.frontcontroller.configExample.2">
  94. <title>Exemple de configuration d'une ressource de contrôleur frontal</title>
  95. <para>
  96. Voici un extrait de configuration <acronym>INI</acronym> montrant comment configurer
  97. la ressource de contrôleur frontal.
  98. </para>
  99. <programlisting language="ini"><![CDATA[
  100. [production]
  101. resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
  102. resources.frontController.moduleControllerDirectoryName = "actions"
  103. resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
  104. resources.frontController.defaultControllerName = "site"
  105. resources.frontController.defaultAction = "home"
  106. resources.frontController.defaultModule = "static"
  107. resources.frontController.baseUrl = "/subdir"
  108. resources.frontController.plugins.foo = "My_Plugin_Foo"
  109. resources.frontController.plugins.bar = "My_Plugin_Bar"
  110. resources.frontController.plugins.baz.class = "My_Plugin_Baz"
  111. resources.frontController.plugins.baz.stackIndex = 123
  112. resources.frontController.returnresponse = 1
  113. resources.frontController.env = APPLICATION_ENV
  114. ;Ce qui suit proxie vers :
  115. ;Zend_Controller_Action_HelperBroker::addPath('Helper_Path', $helperPrefix);
  116. resources.frontController.actionHelperPaths.HELPER_Prefix = "My/Helper/Path"
  117. ]]></programlisting>
  118. </example>
  119. <example id="zend.application.available-resources.frontcontroller.propertyExample">
  120. <title>Récupération de votre contrôleur frontal à partir de votre initialiseur</title>
  121. <para>
  122. Une fois la ressource de contrôleur frontal initialisée, vous pouvez récupérer
  123. l'instance via la propriété <varname>$frontController</varname> de votre initialiseur.
  124. </para>
  125. <programlisting language="php"><![CDATA[
  126. $bootstrap->bootstrap('frontController');
  127. $front = $bootstrap->frontController;
  128. ]]></programlisting>
  129. </example>
  130. </sect2>