Zend_Controller-ActionHelpers-ActionStack.xml 3.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 16003 -->
  3. <!-- Reviewed: no -->
  4. <sect3 id="zend.controller.actionhelpers.actionstack">
  5. <title>ActionStack</title>
  6. <para> El helper <emphasis>ActionStack</emphasis> le permite empujar
  7. requerimientos al <link
  8. linkend="zend.controller.plugins.standard.actionstack"
  9. >ActionStack</link> plugin del front controller, el cual le ayuda
  10. efectivamente a crear una cola de acciones a ejecutar durante la
  11. solicitud. El helper le permite añadir actions ya sea mediante la
  12. especificación de los objetos o una
  13. nueva solicitud action - controller - module. </para>
  14. <note>
  15. <title>Invocando al Ayudante ActionStack Inicializa el Plugin de
  16. ActionStack</title>
  17. <para> Invocando al helper <emphasis>ActionStack</emphasis>
  18. implicitamente registra el plugin de
  19. <emphasis>ActionStack</emphasis> -- lo que significa que no
  20. necesita registrar explícitamente el plugin de
  21. <emphasis>ActionStack</emphasis> para utilizar esta
  22. funcionalidad. </para>
  23. </note>
  24. <example id="zend.controller.actionhelpers.actionstack.simple">
  25. <title>Agregando una Tarea Usando Nombres de Acción, Controllador y
  26. Módulo</title>
  27. <para> A menudo, es más sencillo simplemente especificar la acción, el
  28. controlador y el módulo (y parámetros opcionales de requerimientos),
  29. tal como cuando llama a
  30. <methodname>Zend_Controller_Action::_forward()</methodname>: </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> A veces la naturaleza <acronym>OOP</acronym> de un objeto
  53. solicitud tiene más sentido; puede pasar también tal objeto al
  54. ayudante <emphasis>ActionStack</emphasis>. </para>
  55. <programlisting language="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>