Zend_Controller-Plugins-ActionStack.xml 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <sect3 id="zend.controller.plugins.standard.actionstack">
  2. <title>ActionStack</title>
  3. <para>
  4. Плагин <code>ActionStack</code> позволяет управлять стеком запросов и
  5. действует как плагин <code>postDispatch</code>. Если в текущем
  6. объекте запроса уже задан переход на другое действие, то ничего не
  7. делается. Иначе плагин проверяет свой стек, тянет самый
  8. верхний элемент и производит переход на действие, заданное в этом
  9. запросе. Стек обрабатывается в порядке "последний вошел - первый
  10. вышел" (last-in-first-out, LIFO).
  11. </para>
  12. <para>
  13. Вы можете извлечь плагин из фронт-контроллера в любой момент времени,
  14. используя <code>Zend_Controller_Front::getPlugin('Zend_Controller_Plugin_ActionStack')</code>.
  15. Имея объект плагина, вы можете использовать различные методы для
  16. управления им.
  17. </para>
  18. <itemizedlist>
  19. <listitem><para>
  20. <code>getRegistry()</code> и <code>setRegistry()</code>.
  21. Внутри себя <code>ActionStack</code> использует экземпляр
  22. <code>Zend_Registry</code> для хранения стека. Вы можете с
  23. помощью этих аксессоров заменить экземпляр реестра на другой или
  24. извлечь его.
  25. </para></listitem>
  26. <listitem><para>
  27. <code>getRegistryKey()</code> и <code>setRegistryKey()</code>.
  28. Они могут использоваться для определения того, какой ключ
  29. реестра используется при извлечении стека. По умолчанию
  30. используется ключ 'Zend_Controller_Plugin_ActionStack'.
  31. </para></listitem>
  32. <listitem><para>
  33. <code>getStack()</code> позволяет извлечь стек действий целиком.
  34. </para></listitem>
  35. <listitem><para>
  36. <code>pushStack()</code> и <code>popStack()</code> позволяют
  37. соответственно добавлять и извлекать из стека.
  38. <code>pushStack()</code> принимает объект запроса.
  39. </para></listitem>
  40. </itemizedlist>
  41. <para>
  42. Дополнительный метод <code>forward()</code> ожидает объект запроса в
  43. качестве аргумента и устанавливает состояние текущего объекта запроса во
  44. фронт-контроллере в состояние переданного объекта запроса, помечая его
  45. как необработанный диспетчером (что приводит к еще одной итерации цикла
  46. диспетчеризации).
  47. </para>
  48. </sect3>
  49. <!--
  50. vim:se ts=4 sw=4 et:
  51. -->