gpt4 book ai didi

php - Zend Framework 中特定于模块的 Controller 插件

转载 作者:可可西里 更新时间:2023-10-31 22:48:53 24 4
gpt4 key购买 nike

我的 Zend Framework 项目分为若干模块。每个模块都有一些特定的 Controller 插件。

现在,问题是所有插件都被加载和注册(并因此被调用)——无论用户试图访问哪个模块。

可以测试我们在哪个模块中并直接在插件中停止执行,但我必须在每个插件中都这样做...

是否有一种优雅的方式来只注册特定于模块的插件?还是我在这里试图解决错误的问题?

最佳答案

这是模块特定插件的示例

取自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's Active module config

Jeroen's Moduleconfig

Matthijs' ModuleConfig

Pádraic and Rob's Module Configurators proposal

关于php - Zend Framework 中特定于模块的 Controller 插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3880294/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com