Zend_Controller-Plugins-ActionStack.xml 2.0 KB

123456789101112131415161718192021222324252627282930313233343536
  1. <sect3 id="zend.controller.plugins.standard.actionstack">
  2. <title>动作堆栈</title>
  3. <para>
  4. <code>动作堆栈</code>插件可以管理一个请求堆栈,其操作象<code>postDispatch</code>插件。如果一个转发(例如,对另一个动作的调用)在当前请求对象中已经检测到,它不做任何事情。然而,如果没有检测到,它就检查堆栈并把最上面的一个取出,然后转发给由那个请求指定的动作。堆栈按照LIFO(后进先出)顺序处理。
  5. </para>
  6. <para>
  7. 你可以在任何时候用 <code>Zend_Controller_Front::getPlugin('Zend_Controller_Plugin_ActionStack')</code>从前端控制器获取插件。一旦你有插件对象,有很多机制你可以用来操作。
  8. </para>
  9. <itemizedlist>
  10. <listitem><para>
  11. <code>getRegistry()</code> 和 <code>setRegistry()</code>。在内部, <code>动作堆栈</code> 使用一个<code>Zend_Registry</code> 实例来存储堆栈。你可以用不同的注册表实例来代替或在这些访问器里获取。
  12. </para></listitem>
  13. <listitem><para>
  14. <code>getRegistryKey()</code> 和 <code>setRegistryKey()</code>。当弹出堆栈时,这些可以用来识别使用哪个注册表键。缺省地值是'Zend_Controller_Plugin_ActionStack'。
  15. </para></listitem>
  16. <listitem><para>
  17. <code>getStack()</code> 允许你全面地获取动作堆栈。
  18. </para></listitem>
  19. <listitem><para>
  20. <code>pushStack()</code> 和 <code>popStack()</code> 分别允许你弹出和压栈。<code>pushStack()</code> 接受请求对象。
  21. </para></listitem>
  22. </itemizedlist>
  23. <para>
  24. 一个附加的方法,<code>forward()</code>,准备一个请求对象,并在前端控制器设置当前请求状态给提供的请求对象的状态,使它不可派遣(强制另一个派遣循环迭代)。
  25. </para>
  26. </sect3>
  27. <!--
  28. vim:se ts=4 sw=4 et:
  29. -->