# ActionStack

El helper ActionStack le permite empujar requerimientos al ActionStack plugin del front controller, el cual le ayuda efectivamente a crear una cola de acciones a ejecutar durante la solicitud. El helper le permite añadir actions ya sea mediante la especificación de los objetos o una nueva solicitud action - controller - module.

## Invocando al Ayudante ActionStack Inicializa el Plugin de ActionStack

Invocando al helper ActionStack implicitamente registra el plugin de ActionStack -- lo que significa que no necesita registrar explícitamente el plugin de ActionStack para utilizar esta funcionalidad.

## Agregando una Tarea Usando Nombres de Acción, Controllador y Módulo

A menudo, es más sencillo simplemente especificar la acción, el controlador y el módulo (y parámetros opcionales de requerimientos), tal como cuando llama a `Zend_Controller_Action::_forward()` :

    class FooController extends Zend_Controller_Action
    {
        public function barAction()
        {
            // Agregar dos acciones a la pila (stack)
            // Y llamar a  /foo/baz/bar/baz
            // (FooController::bazAction() con el requrimiento var bar == baz)
            $this->_helper->actionStack('baz',
                                        'foo',
                                        'default',
                                        array('bar' => 'baz'));

            // Agregar la llamada a /bar/bat
            // (BarController::batAction())
            $this->_helper->actionStack('bat', 'bar');
        }
    }

## Agregando una Tarea al Objeto Solicitud (Request)

A veces la naturaleza OOP de un objeto solicitud tiene más sentido; puede pasar también tal objeto al ayudante ActionStack .

    class FooController extends Zend_Controller_Action
    {
        public function barAction()
        {
            // Agregar dos acciones al stack
            // Agregar la llamada a /foo/baz/bar/baz
            // (FooController::bazAction() with request var bar == baz)
            $request = clone $this->getRequest();
            // No establezca controlador o módulo; use los valores actuales
            $request->setActionName('baz')
                    ->setParams(array('bar' => 'baz'));
            $this->_helper->actionStack($request);

            // Agregar la llamada a /bar/bat
            // (BarController::batAction())
            $request = clone $this->getRequest();
            // no establezca módulo; use el valor actual
            $request->setActionName('bat')
                    ->setControllerName('bar');
            $this->_helper->actionStack($request);
        }
    }