Zend_Controller-Plugins-ActionStack.xml 3.5 KB

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