Zend_Controller-ActionHelpers-ActionStack.xml 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 15156 -->
  3. <!-- Reviewed: no -->
  4. <sect3 id="zend.controller.actionhelpers.actionstack">
  5. <title>ActionStack</title>
  6. <para>
  7. Der <code>ActionStack</code> Helfer erlaubt das Verschieben von Anfragen zum
  8. <link linkend="zend.controller.plugins.standard.actionstack">ActionStack</link> Front Kontroller Plugin,
  9. welches effektiv hilft um eine Queue von Aktionen zu erstellen die wärend der Anfrage ausgeführt
  10. wird. Der Helfer erlaubt das hinzufügen von Aktionen entweder durch Spezifikation von neuen
  11. Anfrage Objekten oder Aktion/Kontroller/Modul Sets.
  12. </para>
  13. <note>
  14. <title>Der Aufruf des ActionStack Helpers inizialisiert das ActionStack Plugin</title>
  15. <para>
  16. Der Aufruf des <code>ActionStack</code> Helpers registriert das <code>ActionStack</code>
  17. Plugin implizit -- was bedeutet das das <code>ActionStack</code> Plugin nicht explizit
  18. registriert werden muß um dessen Funktionalität zu verwenden.
  19. </para>
  20. </note>
  21. <example id="zend.controller.actionhelpers.actionstack.simple">
  22. <title>Eine Aufgabe hinzufügen indem Aktion, Kontroller und Modulnamen verwendet werden</title>
  23. <para>
  24. Oft ist es am einfachsten, einfach die Aktion, den Kontroller und das Modul (und optionale
  25. Anfrage Parameter) zu spezifizieren, wie wenn <classname>Zend_Controller_Action::_forward()</classname>
  26. aufgerufen werden würde:
  27. </para>
  28. <programlisting role="php"><![CDATA[
  29. class FooController extends Zend_Controller_Action
  30. {
  31. public function barAction()
  32. {
  33. // Dem Stack zwei Aktionen hinzufügen
  34. // Und /foo/baz/bar/baz aufrufen
  35. // (FooController::bazAction() mit der Anfrage var bar == baz)
  36. $this->_helper->actionStack('baz',
  37. 'foo',
  38. 'default',
  39. array('bar' => 'baz'));
  40. // Aufruf für /bar/bat hinzufügen
  41. // (BarController::batAction())
  42. $this->_helper->actionStack('bat', 'bar');
  43. }
  44. }
  45. ]]></programlisting>
  46. </example>
  47. <example id="zend.controller.actionhelpers.actionstack.simple2">
  48. <title>Eine Aufgabe hinzufügen durch Verwendung eines Anfrage Objektes</title>
  49. <para>
  50. Machmal macht die OOP Natur eines Anfrage Objektes mehr Sinn; solch ein Objekt kann
  51. dem <code>ActionStack</code> Helfer genauso übergeben werden.
  52. </para>
  53. <programlisting role="php"><![CDATA[
  54. class FooController extends Zend_Controller_Action
  55. {
  56. public function barAction()
  57. {
  58. // Dem Stack zwei Aktionen hinzufügen
  59. // Aufruf zu /foo/baz/bar/baz hinzufügen
  60. // (FooController::bazAction() mit der Anfrage var bar == baz)
  61. $request = clone $this->getRequest();
  62. // Kontroller oder Modul nicht setzen, verwende aktuelle Werte
  63. $request->setActionName('baz')
  64. ->setParams(array('bar' => 'baz'));
  65. $this->_helper->actionStack($request);
  66. // Aufruf zu /bar/bat hinzufügen
  67. // (BarController::batAction())
  68. $request = clone $this->getRequest();
  69. // Modul nicht setzen, verwende aktuelle Werte
  70. $request->setActionName('bat')
  71. ->setControllerName('bar');
  72. $this->_helper->actionStack($request);
  73. }
  74. }
  75. ]]></programlisting>
  76. </example>
  77. </sect3>
  78. <!--
  79. vim:se ts=4 sw=4 et:
  80. -->