mix8872/yii2-config

用于将配置存储在数据库中的模块

安装: 626

依赖项: 1

建议者: 0

安全: 0

星星: 0

关注者: 1

分支: 0

开放问题: 0

类型:yii2-extension

3.0.0 2023-04-14 12:40 UTC

This package is auto-updated.

Last update: 2024-09-14 15:52:57 UTC


README

安装此扩展的最佳方式是通过composer

运行以下命令之一:

php composer.phar require --prefer-dist mix8872/config

或者

"mix8872/yii2-config": "dev-master"

将以下内容添加到您的composer.json文件的require部分。

配置

编辑应用程序配置文件中的components部分。

通用

'components' => [
    'config' => [
        'class' => 'mix8872\config\components\Config'
    ],

// other components
]

编辑应用程序配置文件中的controllerMapmodules部分。

后端

'controllerMap' => [
    'elfinder' => [
        'class' => 'mihaildev\elfinder\Controller',
        'access' => ['admin'], //глобальный доступ к фаил менеджеру @ - для авторизорованных , ? - для гостей , чтоб открыть всем ['@', '?']
        'disabledCommands' => ['netmount'], //отключение ненужных команд https://github.com/Studio-42/elFinder/wiki/Client-configuration-options#commands
        'roots' => [
            [
                'baseUrl'=>'@web',
                'basePath'=>'@webroot',
                'path' => 'uploads',
                'name' => 'Uploads',
                'options' => [
                    'uploadOverwrite' => false,
                    'uploadAllow' => ['*'],
                    // 'uploadDeny' => ['pdf'],
                    'uploadOrder' => ['allow', 'deny'],
                    'uploadMaxSize' => '50M',
                    'disabled' => ['mkfile'],
                ],
            ]
        ]
    ],
    
    // other controllers
],
],
'modules' => [
    'config' => [
        'class' => 'mix8872\config\Module',
        'adminRole' => 'admin', // optional, defines all rights on options editing for role
        'as access' => [
            'class' => 'yii\filters\AccessControl',
            'rules' => [
                [
                    'allow' => true,
                    'roles' => ['admin']
                ],
            ]
        ]
    ],
    'gridview' =>  [
        'class' => '\kartik\grid\Module'
        // enter optional module parameters below - only if you need to
        // use your own export download action or custom translation
        // message source
        // 'downloadAction' => 'gridview/export/download',
        // 'i18n' => []
    ],
    
    // other modules
]

如果声明了adminRole,则其他未声明权限的用户无法创建

然后运行迁移

yii migrate --migrationPath=@vendor/mix8872/yii2-config/src/migrations

用法

现在您可以打开url \config\ 并管理您的参数

获取参数值

  • Yii::$app->config-><param_key>
  • 或 Yii::$app->config->g('param_key')

从代码中设置参数值

  • Yii::$app->config-><param_key> = <param_value>
  • 或 Yii::$app->config->s(<param_key>, <param_value>)
  • 或 Yii::$app->config->s('<param_key>,<param_value>')
  • 或 Yii::$app->config->s([<param_key>,<param_value>])
  • 或 Yii::$app->config->s([<param_key> => <param_value>])

事件

配置模块具有以下事件

  • EVENT_AFTER_CREATE - 当添加配置选项时触发
  • EVENT_AFTER_UPDATE - 当更新配置选项时触发
  • EVENT_AFTER_DELETE - 当删除配置选项时触发
  • EVENT_BEFORE_SAVE - 在每个配置选项保存时触发

您可以通过这种方式在配置中捕获这些事件

'modules' => [
    'config' => [
        'class' => 'mix8872\config\Module',
        'on ' . \mix8872\config\Module::EVENT_AFTER_CREATE => function ($e) {
            $model = $e->model;
            // do something
        },
        'on ' . \mix8872\config\Module::EVENT_AFTER_UPDATE => function ($e) {
            $model = $e->model;
            // do something
        },
        'on ' . \mix8872\config\Module::EVENT_AFTER_DELETE => function ($e) {
            $model = $e->model;
            // do something
        },
        'on ' . \mix8872\config\Module::EVENT_BEFORE_SAVE => function ($e) {
            $model = $e->model;
            // do something
        },
    ]
]

$e->model中,事件传递一个配置项对象(或对象数组)。

EVENT_BEFORE_SAVE事件中,模型通过引用传递
并且可以从事件处理程序中修改。

访问规则

您可以通过在配置中定义adminRole或设置配置选项内部的规则来为配置选项定义访问规则
访问矩阵您可以在这里找到。