alhimik1986/yii2_settings_module

模块,允许获取和设置应用程序设置,并通过网页进行访问。

安装次数: 64

依赖项: 0

建议者: 0

安全: 0

星标: 2

关注者: 5

分支: 3

开放性问题: 0

语言:JavaScript

类型:模块

1.0 2016-09-24 17:25 UTC

This package is auto-updated.

Last update: 2024-08-29 04:31:03 UTC


README

应用程序设置存储和获取模块。类似于 Yii::$app->params,但可以通过网页界面进行编辑。

用途

在系统设置中可以存储数据库连接参数,并通过网页界面进行更改。这非常方便。特别是当代码被混淆且无法在其中设置配置时,这尤为重要。当然,可以将设置移至单独的文件,但用户可能不喜欢在文件夹深处搜索该文件并进行相应的修改,例如按照json、xml、yaml或ini格式的愚蠢规则进行修改。通过漂亮的网页界面进行设置修改将更有趣。

演示

[![演示](http://img.youtube.com/vi/GDnTz0CJKHk/0.jpg)](http://www.youtube.com/watch?v=GDnTz0CJKHk)

安装

使用composer下载。在应用程序文件夹中的composer.json文件中添加以下行:

    "require": {
		"alhimik1986/yii2_settings_module": "1.0"
    },

或者在命令行中输入:

$ composer require alhimik1986/yii2_settings_module

在config/web.php文件中编写设置:

$config = [
    'components' => [
		...........
		'settings' => ['class' => 'alhimik1986\yii2_settings_module\components\Settings'], // Для доступа к настройкам
    ],
	
	// Для доступа на странцу редактирования настроек
	'modules' => [
		...........
		'settings' => [
			'class' => 'alhimik1986\yii2_settings_module\Module',
			// Необязательные параметры
			'password' => '123', // Пароль для в входа на страницу редактирования настроек. По умолчанию 123, если указать пустой, то вход без авторизации
			'password_in_settings' => false, // Если указать true, то брать и проверять пароль в настройках (settings.json), а не в web.config-файле.
			'allowedIPs' => ['127.0.0.1', '::1'], // Доступ по IP-адресам
			//'l18n_base_path' => realpath(__DIR__ .'/../messages/alhimik1986/yii2_settings_module'); // Папка, в которой содержатся переводы на другие языки
		],
	],
];

// 或者这样

$config['components']['settings']['class'] = 'alhimik1986\yii2_settings_module\components\Settings'; // Для доступа к настройкам
$config['modules']['settings']['class']    = 'alhimik1986\yii2_settings_module\Module';              // Для доступа на странцу редактирования настроек

设置访问地址

https:///index.php?r=settings
密码:123

所有这些设置都位于文件vendor/alhimik1986/yii2_settings_module/settings/settings.json中

设置访问示例

``` $db = Yii::$app->settings->param['db']; // 这里存储着缓存的数据 $db = Yii::$app->settings->get('db'); // 同上,但数据不缓存,但性能几乎不受影响 Yii::$app->settings->set('password', '1234243'); // 更改设置"password"的值 ``` 在变量$db中,value、label、description键被省略,因为它们不需要。只取name(设置键)和value(设置值)。即如果settings.json中有: ``` { "db": { "value": { "connectionString": "sqlite:@app\/data\/database.s3db", "username": "", "password": "", "tablePrefix": "", "class": "yii\\db\\Connection" }, "label": "数据库连接设置.", "description": "" }, } ``` 则$db等于: ``` [ 'connectionString' => 'sqlite:@app/data/database.s3db', 'username' => '', 'password' => '', 'tablePrefix' => '', 'class' => 'yii\db\Connection', ] ```

在web.php文件中使用此模块的示例,用于设置数据库连接参数

``` require_once(realpath(__DIR__.'/../vendor/alhimik1986/yii2_settings_module/models/SettingsModel.php')); $config['components']['db'] = alhimik1986\yii2_settings_module\models\SettingsModel::getSetting('db'); ```

设置参数签名

典型的设置如下所示 ``` // 设置模块 $config['modules']['settings']['class'] = 'alhimik1986\yii2_settings_module\Module'; //$config['modules']['settings']['password'] = '123'; // 编辑设置页面密码。默认为123,如果留空,则无需认证进入 $config['modules']['settings']['password_in_settings'] = true; // 如果设置为true,则从设置(settings.json)中获取和验证密码,而不是从web.config文件中获取。 $config['modules']['settings']['allowedIPs'] = ['127.0.0.1', '::1']; // 通过IP地址访问 //$config['modules']['settings']['l18n_base_path' = realpath(__DIR__ .'/../messages/alhimik1986/yii2_settings_module'); // 包含其他语言翻译的文件夹 $config['modules']['settings']['settings_json_file'] = realpath(__DIR__ .'/../config').'/settings.json';

// 访问设置 $config['components']['settings']['class'] = 'alhimik1986\yii2_settings_module\components\Settings';

// 通过设置连接到数据库 $settings_path = realpath(DIR .'/../config').'/settings.json'; require_once(realpath(DIR .'/../vendor/alhimik1986/yii2_settings_module/models/SettingsModel.php')); alhimik1986\yii2_settings_module\models\SettingsModel::set_custom_settings_json_file_path($settings_path); $config['components']['db'] = alhimik1986\yii2_settings_module\models\SettingsModel::getSetting('db');