skinka/yii2-config

Yii2 扩展,用于动态配置存储在数据库中的参数

安装: 207

依赖: 0

建议者: 0

安全性: 0

星标: 1

关注者: 2

分支: 0

类型:扩展

0.1.3 2016-12-09 20:25 UTC

This package is not auto-updated.

Last update: 2024-09-14 19:31:05 UTC


README

这是一个允许将应用程序的配置参数存储在数据库中,并通过管理员面板动态管理的扩展。

安装

安装此扩展的首选方式是通过 Composer

运行以下命令:

php composer.phar require --prefer-dist skinka/yii2-config "*"

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

"skinka/yii2-config": "*"

to the require section of your composer.json file.

使用方法

在继续之前,您需要在数据库中创建这些表。为此,您可以使用存储在 @vendor/skinka/yii2-config/src/migrations 中的迁移。

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

创建新的动态参数迁移后

    public function up()
    {
        Config::setNew('adminEmail', 'Administrator email', 'admin@site.com', 
            Config::TYPE_STRING, Config::INPUT_INPUT, [['email']], [], '', 0);
            
        Config::setNew('dateTimeFormat', 'Datetime format for site', 'php:d.m.Y H:i:s', 
            Config::TYPE_STRING, Config::INPUT_INPUT, [['string']], [],
            'Date in PHP format. All formats can be seen here: https://php.ac.cn/manual/en/function.date.php', 1);
            
        Config::setNew('autoConfirmRegistration', 'Automatic registration', true, 
            Config::TYPE_BOOLEAN, Config::INPUT_DROPDOWN, [['integer']], [0 => 'Off', 1 => 'On'], 
            'If enabled, the user at the email will not receive a notification of the activation', 2);
            
        //Others
    }

    public function down()
    {
        Config::delete('adminEmail');
        Config::delete('dateTimeFormat');
        Config::delete('autoConfirmRegistration');
        
        //Others
    }

为IDE提示创建一个类

use skinka\yii2\extension\config\Config;

/**
 * Class Cfg
 *
 * @method  static string adminEmail
 * @method  static string dateTimeFormat
 * @method  static integer autoConfirmRegistration
 */
class Cfg extends Config
{

}

使用参数

if (Cfg::autoConfirmRegistration()) {
    echo Cfg::adminEmail();
}

在管理员面板中管理

在控制器中添加操作

    public function actions()
    {
        return [
            'config' => [
                'class' => 'skinka\yii2\extension\config\actions\ConfigAction',
            ]
        ];
    }