Zend_Controller-ActionHelpers-ActionStack.xml 3.5 KB

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