在Zend Framework中,Controller插件通常用于实例化和配置每个页面都需要的资源。例如,我正在编写一个使用Zend_Auth封装我的授权方法的插件。我的插件应如何“报告”或将数据传递给我的应用程序的其他部分?我假设我应该使用Zend_Registry
...
答案 0 :(得分:1)
由于Zend_Registry::set()
和Zend_Registry::get()
会创建隐藏,难以调试且难以进行单元测试的依赖项,因此我尽量避免使用它们。
通常,插件可以修改已传递的$request
对象。然后,控制器可以从$request
对象中提取所需内容,并将其需要的内容传递到服务,模型,视图等中。
答案 1 :(得分:0)
如果用户无法访问他所询问的页面,我在同一问题的项目中所做的是重定向到错误页面。
问题是给错误页面提供错误描述和异常以及所有内容,格式与ZF内部相同(你知道在你的ErrorController中你可以访问错误信息)。
我所做的是进入ZF代码并查看数据的格式化(数组和类,但没有太复杂),并以相同的方式将我们的信息提供给ErrorController。
想法是将错误信息添加为请求参数,请参阅下面的标准ErrorController如何从ErrorHandler插件中获取信息。
ZF文档中的标准ErrorController:
class ErrorController extends Zend_Controller_Action
{
public function errorAction()
{
$errors = $this->_getParam('error_handler');
switch ($errors->type) {
[...]
}
}
}
我没有代码可以帮助你更多地了解这一点,但这是我知道有用的领导。