mix8872 / yii2-config
用于将配置存储在数据库中的模块
3.0.0
2023-04-14 12:40 UTC
Requires
- php: >=7.1.0
- ext-intl: *
- ext-json: *
- ext-mbstring: *
- kartik-v/yii2-grid: @dev
- kartik-v/yii2-widget-datetimepicker: ^1.4
- kartik-v/yii2-widget-select2: dev-master
- mihaildev/yii2-elfinder: *
- yiisoft/yii2-bootstrap5: 2.0.3
- yiisoft/yii2-jui: ~2.0
- yiisoft/yii2-symfonymailer: ~3.0.0
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 ]
编辑应用程序配置文件中的controllerMap
和modules
部分。
后端
'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或设置配置选项内部的规则来为配置选项定义访问规则
访问矩阵您可以在这里找到。