larapacks/setting

持久化的Laravel配置设置。

安装: 5,657

依赖: 1

建议者: 0

安全性: 0

星标: 5

关注者: 3

分支: 2

公开问题: 0

类型:项目

v3.0.2 2023-03-07 20:17 UTC

This package is auto-updated.

Last update: 2024-09-07 23:43:51 UTC


README

Build Status Scrutinizer Code Quality Total Downloads Latest Stable Version License

描述

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()执行的。

您可以在任何时候启用或禁用加密,但是禁用加密后,您将收到之前已加密的设置的原始加密字符串。