Zend_Controller-ActionHelpers-ActionStack.xml 3.5 KB

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