larapacks / setting
持久化的Laravel配置设置。
v3.0.2
2023-03-07 20:17 UTC
Requires
- php: >=7.2
- illuminate/database: ^5.6|^6.0|^7.0|^8.0|^9.0|^10.0
Requires (Dev)
- orchestra/testbench: ^3.7|^4.0|^5.0|^6.0|^7.0|^8.0
- phpunit/phpunit: ^7.0|^8.0|^9.0
README
描述
Setting是一个简单、加密和缓存的数据库键 => 值存储,用于您的Laravel应用程序。
要求
- PHP >= 7.2
- Laravel >= 6.0
安装
运行以下命令
composer require larapacks/setting
注意:服务提供者和
Setting
外观将自动注册。
完成后,使用以下命令发布迁移和配置文件
php artisan vendor:publish --tag="setting"
然后运行php artisan migrate
。
使用方法
注意:以下所有使用方法都可以通过辅助方法
setting()
访问。
设置值
Setting::set('key', 'value');
设置多个值
Setting::set([ 'key.1' => 'value', 'key.2' => 'value', 'key.3' => 'value', ]);
检索值
$value = Setting::get('key.1'); dd($value); // Returns 'value'
检索值或返回默认值(如果不存在)
$value = Setting::get('non-existent-key', 'default'); dd($value); // Returns 'default'
检索特定键的Setting模型
$model = Setting::find('key.1'); dd($model); // Reurns instance of Model (your configured model).
检索所有具有值的键
Setting::set([ 'key.1' => 'value', 'key.2' => 'value', 'key.3' => 'value', ]); $settings = Setting::all(); dd($settings); // Returns: // array [ // 'key.1' => 'value', // 'key.2' => 'value', // 'key.3' => 'value', // ]
检索您配置的Setting模型
$model = Setting::model(); $setting = new $model(); $setting->key = 'key'; $setting->value = 'value'; $setting->save();
确定设置是否存在
if (Setting::has('key')) { // The setting exists. }
切换布尔设置
Setting::set('notifications', true); // Disable notifications. Setting::flip('notifications'); dd(Setting::get('notifications')); // Returns false. // Enable notifications. Setting::flip('notifications'); dd(Setting::get('notifications')); // Returns true. // Default flip setting: Setting::flip('new-key'); dd(Setting::get('new-key')); // Retuns true.
启用布尔设置
Setting::set('notifications', false); Setting::enable('notifications'); dd(Setting::get('notifications')); // Returns true.
禁用布尔设置
Setting::set('notifications', true); Setting::disable('notifications'); dd(Setting::get('notifications')); // Returns false.
使用自己的模型
要使用自己的模型,请更改您的config/settings.php
文件中的model
配置选项。
当您创建自己的模型时,请确保包含特性:Larapacks\Setting\Traits\SettingTrait
namespace App; use Larapacks\Setting\Traits\SettingTrait; class Setting extends Model { use SettingTrait; }
加密
可以在发布的配置文件中启用或禁用加密。默认情况下是启用的。
加密是通过Laravel包含的辅助方法encrypt()
和decrypt()
执行的。
您可以在任何时候启用或禁用加密,但是禁用加密后,您将收到之前已加密的设置的原始加密字符串。