ottosmops/settings

laravel 的简单设置包

v1.2.0 2024-03-26 16:10 UTC

README

Software License Code Coverage Tests Packagist Downloads

安装

composer require ottosmops/settings 
php artisan vendor:publish // --tag==migrations

如果您想重命名数据库表,您可以在 config/settings.php 中进行操作。

php artisan migrate 

描述

该包安装了一个名为 settings 的表,并使用了一个普通的模型 setting。因此,所有标准方法都可用。助手 setting('key') 和静态方法 Setting::getValue('key') 使用一个缓存的数组。如果创建、更新或删除设置,缓存将被忘记。

除了 keyvalue 之外,还有一些其他列

  • type (不可为空!),
  • scope (字符串),
  • editable (转换为布尔值),
  • rules (字符串),
  • description (文本)。

如果您设置了一个新值,它会与类型和规则进行验证。因此,静态方法 Setting::setValue('key', 'value') 是设置值的首选方式。

用法

创建一个新的设置

$setting = Setting::create(['key' => 'myKey', 
                            'type' => 'string', // integer, bool or array
                            'scope' => 'mysetting', 
                            'rules' => 'nullable|string', 
                            'description' => 'My description']);

$setting = Setting::setValue('myKey', 'myValue');

echo $setting->value // myValue from the model

// from Cache
echo setting('key'); // myValue

echo Setting::getValue('key'); // myValue

类型

值可以有不同的类型: stringbooleanintegerarray。要创建一个新的设置,您必须指定至少一个类型

Setting::create(['key' => 'your_key', 'type' => 'integer']);
Setting::setValue('your_key', 37);

因此,如果您现在获取一个值,它将被转换为这种类型。

助手

为了检索值,有一个助手 setting($key, $default= null),它使用设置缓存的数组。

配置

您可以在 setting.php 中设置另一个表名。

灵感来自

https://github.com/saqueib/db-settings/blob/master/app/Setting/Setting.php

https://coderstape.com/series/1-laravel-package-development