Zend_Controller-ActionHelpers-ActionStack.xml 3.4 KB

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