zend framework2 - 有条件地在application.config.php中包含模块


zend framework2 - Conditionally Include Modules in application.config.php?

在Zend Framework 2中,如果满足某些路由条件,是否有内置方法来加载某些模块?

这是一个非常糟糕的例子。 假设登录和注册页面是作为单独的模块构建的,人们会知道登录模块不需要实例化/register 是当前路由。

如果你能看过我这个可怕的例子,我认为逻辑是合理的...... 一些模块提供了侦听器和触发器的呼吸,除非它们的路由在起作用,否则根本不使用。 尽可能避免在每分钟提供数千个服务的站点上的引导开销。

以为我会在滚动一些方法之前四处询问。

谢谢!

希望这还不算太晚。我需要解决一个类似的问题,即我只想在从 cli 工作时加载 Cli 模块。这是我在我的应用程序.config.php文件中所做的

   返回 call_user_func(function() {        $modules = 数组(            "应用程序",        );        if (''Zend''Console''Console::isConsole()) {            $modules[] = 'Cli';        } else {            $modules[] = 'API';            $modules[] = "移动";        }        返回数组(            "模块" => $modules,            其他应用程序配置选项        );       });

通常,这个文件会有"return array(/* ... */);",但通过将其变成一个函数,你可以应用任何你喜欢的逻辑。

虽然可以有条件地加载模块,但它不会基于路由,因为所有应用程序路由都位于模块中。ZF2 如何知道哪些模块可能附加了"模块加载"条件的路由,而无需先加载它们?

ZF2 中的模块引导开销非常低。与 ZF1 相比,这一领域有了很大的改进。这不太可能成为应用程序的瓶颈,因此除非您知道问题存在,否则不要尝试解决问题。