[英]Module-specific Controller plugins in Zend Framework
我的Zend Framework项目分为几个模块。 每个模块都有一些特定的控制器插件。
现在,问题是所有插件都被加载和注册(因此被调用) - 无论用户尝试访问哪个模块。
我可以测试我们在哪个模块中并直接在插件中停止执行,但我必须在每个插件中执行此操作...
是否有一种优雅的方式来只注册特定于模块的插件? 或者我在这里试图解决错误的问题?
这是模块特定插件的示例
摘自http://weierophinney.net/matthew/archives/234-Module-Bootstraps-in-Zend-Framework-Dos-and-Donts.html
class Foomodule_Plugin_Layout extends Zend_Controller_Plugin_Abstract
{
public function dispatchLoopStartup(Zend_Controller_Request_Abstract $request)
{
if ('foomodule' != $request->getModuleName()) {
// If not in this module, return early
return;
}
// Change layout
Zend_Layout::getMvcInstance()->setLayout('foomodule');
}
}
更新:万一你错过了,上面同一篇文章中列出了其他方式:
有没有更好的方法来做到这一点?
是的,可能有更好的方法来实现这一目标。 真正的问题是模块目前在ZF中确实是二等公民。 有一些巧妙的想法浮出水面: Kathryn的Active模块配置
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.