oriceon / laravel-settings
Laravel 5 持久化设置
Requires
- php: >=5.5.9
- doctrine/dbal: ^2.5|^3.0
- illuminate/support: >=5.4
Requires (Dev)
- illuminate/database: >=5.4
- illuminate/events: >=5.4
- phpunit/phpunit: 6.0.7
README
Laravel-Settings
使用 JSON 缓存文件在 Laravel 5.4.x 中实现持久化设置
安装过程
-
使用 composer 安装此包
composer require oriceon/laravel-settings
-
在
config/app.php
中的providers
数组中注册 ServiceProviderOriceon\Settings\SettingsServiceProvider::class,
-
在你的
config/app.php
中的aliases
数组中添加 facade 的别名'Settings' => Oriceon\Settings\Facades\Settings::class,
-
现在发布配置和迁移文件
php artisan vendor:publish --provider="Oriceon\Settings\SettingsServiceProvider" --force
根据您的需求修改 config/settings.php
创建 settings
表
php artisan migrate
如何使用它?
设置一个值
Settings::set('key', 'value');
Settings::set('key1.key2', 'value');
获取一个值
$value = Settings::get('key');
$value = Settings::get('key1.key2');
获取带默认值的值
$value = Settings::get('key', 'Default Value');
获取所有设置
$values = Settings::getAll();
注意:默认情况下,所有设置都从缓存中加载。如果您想使用此方法从数据库中加载它们,只需调用带参数的函数即可
$values = Settings::getAll($cache = false);
注意:如果键在缓存或设置表中未找到(null),它将返回默认值
有键
$value = Settings::has('key');
$value = Settings::has('key1.key2');
忘记一个值
Settings::forget('key');
Settings::forget('key1.key2');
清理并从配置文件更新设置
Settings::clean();
Settings::clean(['flush' => true]);
注意:使用 flush 参数将忘记所有值并重新从配置文件加载设置
忘记所有值
Settings::flush();
回退到 Laravel 配置
// Change your config/settings.php
'fallback' => true
示例
/*
* If the value with key => mail.host is not found in cache or DB of Larave Settings
* it will return same value as config::get('mail.host');
*/
Settings::get('mail.host');
主要配置文件
// Change your config/settings.php
'primary_config_file' => 'filename'
注意:如果您想创建一个包含所有默认设置的站点配置文件,请在 config/ 中创建一个具有所需名称的文件,并创建您想要的配置文件。之后,您可能不再需要在设置调用中输入文件名。
而不是使用 Settings::get('filename.setting_key'),您只需调用 Settings::get('setting_key')
注意:如果 Laravel 设置中的默认值未设置,则它将正常工作
通过辅助函数获取值
$value = settings('key');
$value = settings('key', 'default value');
感谢主要作者
Fwork 包: ABENEVAUT/laravel-settings