# ActionStack

פלאגין ה `ActionStack` מאפשר לך לנהל את הערמה של הבקשות, ופועלת בתור פלאגין `postDispatch`. אם הכוונה (לדוגמא קריאה לפעולה אחרת) כבר נמצאה באובייקט הבקשה הנוכחית, היא לא מבצעת כלום. למרות, אם לא, היא בודקת את הערמה שלה ושולפת את הפריט הכי עליון בערמה ומנתבת אל הפעולה המוגדרת בבקשה. הערמה מעובדת בסדר LIFO.

ניתן לקבל את הפלאגין מהקונטרולר הראשי בכל עת על ידי שימוש ב `Zend_Controller_Front::getPlugin('Zend_Controller_Plugin_ActionStack')`. ברגע שיש לכם את אובייקט הפלאגין, ישנם מגוון דרכים לעבוד איתו.

- `getRegistry()` ו `setRegistry()`. באופן פנימי, `ActionStack` משתמשת באובייקט של `Zend_Registry` כדי לשמור את הערמה. ניתן להחליף את האובייקט או לקבל אותו בעזרת המתודות הללו.

- `getRegistryKey()` ו `setRegistryKey()`. מתודות אלו נועדו כדי להגדיר ולקבל את המזהה היחודי שנועד לשמירת הערמה. ברירת המחדל היא 'Zend_Controller_Plugin_ActionStack'.

- `getStack()` מאפשר קבלת הערמה בשלמותה.

- `pushStack()` ו `popStack()` מאפשרת לך להוסיף פריט לערמה, ולהוציא פריט מהערמה בהתאם. `pushStack()` מקבלת פרמטרט בתור אובייקט הניתוב.

מתודה נוספת `forward()`, מקבלת פרמטר בתור אובייקט ניתוב, ומגדירה את המצב של האובייקט הנוכחי בקונטרולר הראשי למצב של האובייקט שהוזן, ומסמנת אותו בתור לא ניתן לניתוב. ובכך מכריחה איטרציה נוספת של לולאת הניתוב.