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