Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Module 如何在Yii2中启用和禁用模块?_Module_Yii2_Yii Modules - Fatal编程技术网

Module 如何在Yii2中启用和禁用模块?

Module 如何在Yii2中启用和禁用模块?,module,yii2,yii-modules,Module,Yii2,Yii Modules,在谷歌没有更多关于模块启用和禁用的信息,所以我在这里很麻烦 我在yii2中构建了一些模块,如用户,支付,订阅,新闻等。我想禁用订阅模块。可能吗 编辑:启用和禁用功能应允许最终用户使用。我将在支持禁用/启用的模块类中放置以下代码 因此,对于每个模块(用户,订阅,新闻,等等),您都有扩展\yii\base\module的模块类。在每个模块类中放置这样的代码,并检查适当的设置 public function init() { if (!$this->_isModuleEnabled())

在谷歌没有更多关于模块启用和禁用的信息,所以我在这里很麻烦

我在yii2中构建了一些模块,如
用户
支付
订阅
新闻
等。我想禁用
订阅
模块。可能吗


编辑:启用和禁用功能应允许最终用户使用。

我将在支持禁用/启用的模块类中放置以下代码

因此,对于每个模块(
用户
订阅
新闻
,等等),您都有扩展
\yii\base\module
的模块类。在每个模块类中放置这样的代码,并检查适当的设置

public function init() {
    if (!$this->_isModuleEnabled()) {
        // This can also be another exception of course.
        throw new \Exception("This module isn't enabled.");
    }
    parent::init();
}

private function _isModuleEnabled() {
    /**
     * Probably check some setting in the database or someting. Then
     * return true or false depending on that setting.
     */
    return true;
}

只需将其从配置中删除..?您想实现什么?@jagsler我想从用户端禁用和启用。没有手动从编码中删除我认为这个解决方案已经足够好了@jagsler,我们可以从init()访问DB吗?这样我们就可以在不更改源代码的情况下使用UI/DB禁用模块。