Zend_Controller-ActionHelpers-ActionStack.xml 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!-- EN-Revision: 24249 -->
  3. <!-- Reviewed: no -->
  4. <sect3 id="zend.controller.actionhelpers.actionstack">
  5. <title>ActionStack</title>
  6. <para>
  7. L'aide <emphasis>ActionStack</emphasis> vous permet d'empiler les requêtes dans le plugin de
  8. contrôleur frontal
  9. <link linkend="zend.controller.plugins.standard.actionstack">ActionStack</link>, vous
  10. aidant effectivement à créer une liste d'actions à exécuter durant la requête. Cette aide
  11. vous permet d'ajouter des actions, soit en spécifiant de nouveaux objets de requêtes, soit
  12. en paramétrant action&#160;/&#160;controller&#160;/&#160;module.
  13. </para>
  14. <note>
  15. <title>Invoquer l'aide ActionStack initialise le plugin ActionStack</title>
  16. <para>
  17. L'appel de l'aide <emphasis>ActionStack</emphasis> enregistre implicitement le plugin
  18. <emphasis>ActionStack</emphasis> - ce qui veut dire que vous n'avez pas besoin
  19. d'enregistrer explicitement le plugin <emphasis>ActionStack</emphasis> pour utiliser
  20. cette fonctionnalité.
  21. </para>
  22. </note>
  23. <example id="zend.controller.actionhelpers.actionstack.simple">
  24. <title>Ajouter une tâche en utilisant une action, un contrôleur et un module</title>
  25. <para>
  26. Souvent, il est plus simple de spécifier l'action, le contrôleur et le module (et
  27. optionnellement des paramètres de requêtes), comme vous le feriez en appelant
  28. <methodname>Zend_Controller_Action::_forward()</methodname>&#160;:
  29. </para>
  30. <programlisting language="php"><![CDATA[
  31. class FooController extends Zend_Controller_Action
  32. {
  33. public function barAction()
  34. {
  35. // Ajoute deux actions à la pile
  36. // Ajoute un appel à /foo/baz/bar/baz (FooController::bazAction()
  37. // avec une variable de requête bar == baz)
  38. $this->_helper->actionStack('baz',
  39. 'foo',
  40. 'default',
  41. array('bar' => 'baz'));
  42. // Ajoute un appel à /bar/bat
  43. // (BarController::batAction())
  44. $this->_helper->actionStack('bat', 'bar');
  45. }
  46. }
  47. ]]></programlisting>
  48. </example>
  49. <example id="zend.controller.actionhelpers.actionstack.simple2">
  50. <title>Ajouter une tâche en utilisant un objet de requête</title>
  51. <para>
  52. Parfois la nature <acronym>OO</acronym> d'un objet de requête a plus de sens&#160;;
  53. vous pouvez alors fournir l'objet à l'aide <emphasis>ActionStack</emphasis>.
  54. </para>
  55. <programlisting language="php"><![CDATA[
  56. class FooController extends Zend_Controller_Action
  57. {
  58. public function barAction()
  59. {
  60. // Ajoute deux actions à la pile
  61. // Ajoute un appel à /foo/baz/bar/baz (FooController::bazAction()
  62. // avec une variable de requête bar == baz)
  63. $request = clone $this->getRequest();
  64. // sans régler le contrôleur ou le module,
  65. // utilise les valeurs courantes
  66. $request->setActionName('baz')
  67. ->setParams(array('bar' => 'baz'));
  68. $this->_helper->actionStack($request);
  69. // Ajoute un appel à /bar/bat
  70. // (BarController::batAction())
  71. $request = clone $this->getRequest();
  72. // sans régler le module, utilise la valeur courante
  73. $request->setActionName('bat')
  74. ->setControllerName('bar');
  75. $this->_helper->actionStack($request);
  76. }
  77. }
  78. ]]></programlisting>
  79. </example>
  80. </sect3>