oriceon/laravel-settings

Laravel 5 持久化设置

1.6.2 2021-07-28 16:02 UTC

This package is auto-updated.

Last update: 2024-09-22 11:00:11 UTC


README

Build Status Latest Stable Version Total Downloads License

Laravel-Settings

使用 JSON 缓存文件在 Laravel 5.4.x 中实现持久化设置

安装过程

  1. 使用 composer 安装此包

    composer require oriceon/laravel-settings

  2. config/app.php 中的 providers 数组中注册 ServiceProvider

    Oriceon\Settings\SettingsServiceProvider::class,

  3. 在你的 config/app.php 中的 aliases 数组中添加 facade 的别名

    'Settings' => Oriceon\Settings\Facades\Settings::class,

  4. 现在发布配置和迁移文件

    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

原始包: efriandika/laravel-settings