我不明白在类上使用init()和bootstrap()之间究竟有什么区别。
我的情况:
我想使用Yii::$app->urlManager->addRules(...)
从我的模块中添加动态网址,但不要加载模块以提高性能。
所以,我想如果从主配置文件引导模块,如:'bootstrap' => ['mymodule']
,则Module :: bootstrap()函数将仅执行且独占。但实际上总是运行Module :: init()函数,然后运行Module :: bootstrap()。
在此文档http://www.yiiframework.com/doc-2.0/guide-runtime-routing.html#adding-rules上说:
'请注意,您还应该在yii \ web \ Application :: bootstrap()中列出这些模块,以便他们可以参与自举过程。'
但是如果模块列在yii \ web \ Application :: bootstrap()
上,则不会执行Module :: bootstrap()我想只设置没有模块加载的动态规则。这怎么可能?设置动态URL而不影响性能的最佳位置是什么?
答案 0 :(得分:0)
我决定通过观看工作扩展来解决此问题(为模块添加动态规则)。
例如https://github.com/dmstr/yii2-pages-module扩展名使用bootstrap接口。
不要忘记写作composer.json"输入"属性为" yii2-extension"。