ZF2 forward()
控制器插件是否会触发新的请求周期?还是其中的一部分?
我正在编写一个带有小部件内容的ZF2 MVC应用程序。小部件内容通过自己的控制器操作公开,因为有时我需要用ajax命中它。
当我需要将小部件内容作为另一个动作的子视图(即整页加载)时,该动作使用forward()
插件来获取小部件内容。如果它会引入一个重大的开销,我将直接转到服务层(即使这种方法不那么干)。
我意识到性能测试会为我回答这个问题,但我距离能够进行这样的测试还有几个星期。
编辑:当我说“新请求周期”时,我的意思是ZF2 MVC请求周期,即路由,调度等。直觉上我会怀疑它会再次触发路由,但它可以启动从派遣中循环。我问这个问题是因为我知道在ZF1中它触发了第二个周期,这是一个真正的性能消耗。答案 0 :(得分:0)
“前进”有两种选择。理解php是服务器端语言处理器,用于获取传入请求并返回响应。
也就是说,第一个“前进”使用框架内转发。这意味着只有一个请求和一个响应。框架内部调用一个控制器操作,然后调用另一个操作符。 Zend Framework将此方法称为前进。
第二个“转发”是一个真正的重定向,其中第一个响应包含Location头和302 http状态代码。这导致第二个请求并且连续地在第二个响应中。 Zend Framework将此方法称为重定向。
所以在上面,你在问题中谈到的前锋不涉及任何会话或路由匹配参数,因为对动作的第二次调用是在同一个php过程中,因此所有变量都已知。
Is it possible to forward data to another controller/action in Zend 2?