在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 相比,这一领域有了很大的改进。这不太可能成为应用程序的瓶颈,因此除非您知道问题存在,否则不要尝试解决问题。