Zend_Controller-ActionHelpers-ActionStack.xml 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  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. El helper
  8. <emphasis>ActionStack</emphasis>
  9. le permite empujar
  10. requerimientos al
  11. <link linkend="zend.controller.plugins.standard.actionstack">ActionStack</link>
  12. plugin del front controller, el cual le ayuda
  13. efectivamente a crear una cola de acciones a
  14. ejecutar durante la
  15. solicitud. El helper le permite añadir actions ya sea mediante la
  16. especificación de los objetos o una
  17. nueva solicitud action - controller - module.
  18. </para>
  19. <note>
  20. <title>Invocando al Ayudante ActionStack Inicializa el Plugin de
  21. ActionStack</title>
  22. <para>
  23. Invocando al helper
  24. <emphasis>ActionStack</emphasis>
  25. implicitamente registra el plugin de
  26. <emphasis>ActionStack</emphasis>
  27. -- lo que significa que no
  28. necesita registrar explícitamente el plugin de
  29. <emphasis>ActionStack</emphasis>
  30. para utilizar esta
  31. funcionalidad.
  32. </para>
  33. </note>
  34. <example id="zend.controller.actionhelpers.actionstack.simple">
  35. <title>Agregando una Tarea Usando Nombres de Acción, Controllador y
  36. Módulo</title>
  37. <para>
  38. A menudo, es más sencillo simplemente especificar la acción, el
  39. controlador y el módulo
  40. (y parámetros opcionales de requerimientos),
  41. tal como cuando llama a
  42. <methodname>Zend_Controller_Action::_forward()</methodname>
  43. :
  44. </para>
  45. <programlisting language="php"><![CDATA[
  46. class FooController extends Zend_Controller_Action
  47. {
  48. public function barAction()
  49. {
  50. // Agregar dos acciones a la pila (stack)
  51. // Y llamar a /foo/baz/bar/baz
  52. // (FooController::bazAction() con el requrimiento var bar == baz)
  53. $this->_helper->actionStack('baz',
  54. 'foo',
  55. 'default',
  56. array('bar' => 'baz'));
  57. // Agregar la llamada a /bar/bat
  58. // (BarController::batAction())
  59. $this->_helper->actionStack('bat', 'bar');
  60. }
  61. }
  62. ]]></programlisting>
  63. </example>
  64. <example id="zend.controller.actionhelpers.actionstack.simple2">
  65. <title>Agregando una Tarea al Objeto Solicitud (Request)</title>
  66. <para>
  67. A veces la naturaleza
  68. <acronym>OOP</acronym>
  69. de un objeto
  70. solicitud tiene más sentido; puede pasar también tal objeto al
  71. ayudante
  72. <emphasis>ActionStack</emphasis>
  73. .
  74. </para>
  75. <programlisting language="php"><![CDATA[
  76. class FooController extends Zend_Controller_Action
  77. {
  78. public function barAction()
  79. {
  80. // Agregar dos acciones al stack
  81. // Agregar la llamada a /foo/baz/bar/baz
  82. // (FooController::bazAction() with request var bar == baz)
  83. $request = clone $this->getRequest();
  84. // No establezca controlador o módulo; use los valores actuales
  85. $request->setActionName('baz')
  86. ->setParams(array('bar' => 'baz'));
  87. $this->_helper->actionStack($request);
  88. // Agregar la llamada a /bar/bat
  89. // (BarController::batAction())
  90. $request = clone $this->getRequest();
  91. // no establezca módulo; use el valor actual
  92. $request->setActionName('bat')
  93. ->setControllerName('bar');
  94. $this->_helper->actionStack($request);
  95. }
  96. }
  97. ]]></programlisting>
  98. </example>
  99. </sect3>