Zend_Controller-ActionHelpers-ActionStack.xml 3.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 15617 -->
  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 <link
  8. linkend="zend.controller.plugins.standard.actionstack">ActionStack</link> Front
  9. Kontroller Plugin, welches effektiv hilft um eine Queue von Aktionen zu erstellen die wärend
  10. der Anfrage ausgeführt wird. Der Helfer erlaubt das hinzufügen von Aktionen entweder durch
  11. Spezifikation von neuen 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>
  23. Eine Aufgabe hinzufügen indem Aktion, Kontroller und Modulnamen verwendet werden
  24. </title>
  25. <para>
  26. Oft ist es am einfachsten, einfach die Aktion, den Kontroller und das Modul (und
  27. optionale Anfrage Parameter) zu spezifizieren, wie wenn
  28. <classname>Zend_Controller_Action::_forward()</classname> aufgerufen werden würde:
  29. </para>
  30. <programlisting language="php"><![CDATA[
  31. class FooController extends Zend_Controller_Action
  32. {
  33. public function barAction()
  34. {
  35. // Dem Stack zwei Aktionen hinzufügen
  36. // Und /foo/baz/bar/baz aufrufen
  37. // (FooController::bazAction() mit der Anfrage var bar == baz)
  38. $this->_helper->actionStack('baz',
  39. 'foo',
  40. 'default',
  41. array('bar' => 'baz'));
  42. // Aufruf für /bar/bat hinzufügen
  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>Eine Aufgabe hinzufügen durch Verwendung eines Anfrage Objektes</title>
  51. <para>
  52. Machmal macht die OOP Natur eines Anfrage Objektes mehr Sinn; solch ein Objekt kann
  53. dem <code>ActionStack</code> Helfer genauso übergeben werden.
  54. </para>
  55. <programlisting language="php"><![CDATA[
  56. class FooController extends Zend_Controller_Action
  57. {
  58. public function barAction()
  59. {
  60. // Dem Stack zwei Aktionen hinzufügen
  61. // Aufruf zu /foo/baz/bar/baz hinzufügen
  62. // (FooController::bazAction() mit der Anfrage var bar == baz)
  63. $request = clone $this->getRequest();
  64. // Kontroller oder Modul nicht setzen, verwende aktuelle Werte
  65. $request->setActionName('baz')
  66. ->setParams(array('bar' => 'baz'));
  67. $this->_helper->actionStack($request);
  68. // Aufruf zu /bar/bat hinzufügen
  69. // (BarController::batAction())
  70. $request = clone $this->getRequest();
  71. // Modul nicht setzen, verwende aktuelle Werte
  72. $request->setActionName('bat')
  73. ->setControllerName('bar');
  74. $this->_helper->actionStack($request);
  75. }
  76. }
  77. ]]></programlisting>
  78. </example>
  79. </sect3>
  80. <!--
  81. vim:se ts=4 sw=4 et:
  82. -->