Yii2:init()和bootstrap()之间的差异以及在模块上添加动态URL的最佳位置

时间:2018-01-25 12:55:59

标签: yii2

我不明白在类上使用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而不影响性能的最佳位置是什么?

1 个答案:

答案 0 :(得分:0)

我决定通过观看工作扩展来解决此问题(为模块添加动态规则)。

例如https://github.com/dmstr/yii2-pages-module扩展名使用bootstrap接口。

不要忘记写作composer.json"输入"属性为" yii2-extension"。