# ActionStack

תוסף העזרה `ActionStack` מאפשר לך לדחוף בקשות אל ActionStack שנמצא בפרונט קונטרולר, ובכך מאפשר לך ליצור תור של פעולות שצריך לבצע בזמן בקשה. התוסף מאפשר לך להוסיף פעולות ופונקציות על ידי הגדרת אובייקטים חדשים או סטים של action/controller/module.

## שימוש בתוסף ActionStack יקרא גם לפלאגין `ActionStack`

קריאה לתוסף `ActionStack` קורא מייד לפלאגין `ActionStack` -- וזה אומר שאין צורך ולקרוא לפלאגין `ActionStack` בצורה יחודית.

## הוספת משימה על ידי הוספת שמות של action / controller / module

לעיתים, הכי פשוט יהיה להגדיר את ה action, controller, module בדיוק באותה מידע כשתרצו לקרוא ל `Zend_Controller_Action::_forward()`:

    class FooController extends Zend_Controller_Action
    {
        public function barAction()
        {
            // Add two actions to the stack
            // Add call to /foo/baz/bar/baz
            // (FooController::bazAction() with request var bar == baz)
            $this->_helper->actionStack('baz',
                                        'foo',
                                        'default',
                                        array('bar' => 'baz'));

            // Add call to /bar/bat
            // (BarController::batAction())
            $this->_helper->actionStack('bat', 'bar');
        }
    }

## הוספת משימה על ידי אובייקט

לפעמים שימוש ב OOP להעברת אובייקט לתוסף העזרה כדי להוסיף את הערך לערמה היא הדרך הטובה ביותר; תוכל לבצע זאת על ידי העברת אובייקט ל `ActionStack` :

    class FooController extends Zend_Controller_Action
    {
        public function barAction()
        {
            // Add two actions to the stack
            // Add call to /foo/baz/bar/baz
            // (FooController::bazAction() with request var bar == baz)
            $request = clone $this->getRequest();
            // Don't set controller or module; use current values
            $request->setActionName('baz')
                    ->setParams(array('bar' => 'baz'));
            $this->_helper->actionStack($request);

            // Add call to /bar/bat
            // (BarController::batAction())
            $request = clone $this->getRequest();
            // don't set module; use current value
            $request->setActionName('bat')
                    ->setControllerName('bar');
            $this->_helper->actionStack($request);
        }
    }