amirsahra/larasetting

v1 2024-02-09 05:18 UTC

This package is auto-updated.

Last update: 2024-09-26 07:36:53 UTC


README

适用于 Laravel 9+ 的 Larasetting 包

Larasetting 是一个简单且高效的 Laravel 应用程序设置管理包。它通过键值对的方式提供方便的存储和检索设置的方法,确保数据通过专用的数据库表持久化和组织。

功能

  • 易于使用的函数:Larasetting 通过两个主要函数简化设置管理:get_setting() 和 set_setting()。
  • 灵活处理设置:通过键获取所有设置或特定设置。根据活跃状态过滤设置进行特定检索。
  • 数据库支持的持久化:设置在专用的数据库表中安全存储,确保数据完整性并在应用程序重启之间持久化。

安装

安装包:使用 Composer 安装包

composer require amirsahra/larasetting

将以下类添加到 config/app.php 中的 providers 数组

Amirsahra\Larasetting\LarasettingServiceProvider::class,

和别名

'Larasetting' => Amirsahra\Larasetting\Facades\Larasetting::class

发布配置:发布配置文件以自定义设置

php artisan vendor:publish --provider="Amirsahra\Larasetting\LarasettingServiceProvider"

自定义配置:编辑 config/larasetting.php 文件以调整设置表的名称和默认状态。

用法

此包提供了一个门面和助手,您可以使用任何一个。以下我们将解释两种方法

Larasetting 提供了两个用于管理设置的主要函数

// facade
getSetting('key','vlue','is_active');
setSetting('key','vlue','is_active');

// helper
get_setting('key','vlue','is_active');
set_setting('key','vlue','is_active');

使用助手函数

获取设置

以下是如何使用辅助方法获取设置的示例

/*   Get all setting  */
get_setting(); // Get all values that are active or inactive
get_setting(null, null, true); // Get all values that are active 
get_setting(null, null, false); // Get all values that are inactive

/*   Get by setting key  */
// Get the value of the `key_name` key that is enabled or disabled
get_setting('key_name'); 

// Get the value of the `key_name` key if it is active
get_setting('key_name', null, true); 

// Get the value of the `key_name` key if it is inactive
get_setting('key_name', null, false);

// Gets the value of the key_name key that is active or inactive,
// If it doesn't exist, sets it to these values.
// It is inactive by default
get_setting('key_name', 'default', null); 

设置设置

以下是如何使用辅助方法保存设置的示例

set_setting(); // If the method is used without parameters, it will give an error

// At least two parameters, key and value, are required to create a setting,
// and its value is_active by default, which is equal to false
set_setting('key_name', 'vlue'); 

// If the key_name value already exists, it acts as an update and the value value is updated.
// It means that our setting will be updated
get_setting('key_name', 'new_value', true); 

使用门面

获取设置

以下是如何使用辅助方法获取设置的示例

/*   Get all setting  */
Larasetting::getSetting(); // Get all values that are active or inactive
Larasetting::getSetting(null, null, true); // Get all values that are active 
Larasetting::getSetting(null, null, false); // Get all values that are inactive

/*   Get by setting key  */
// Get the value of the `key_name` key that is enabled or disabled
Larasetting::getSetting('key_name'); 

// Get the value of the `key_name` key if it is active
Larasetting::getSetting('key_name', null, true); 

// Get the value of the `key_name` key if it is inactive
Larasetting::getSetting('key_name', null, false);

// Gets the value of the key_name key that is active or inactive,
// If it doesn't exist, sets it to these values.
// It is inactive by default
Larasetting::getSetting('key_name', 'default', null); 

设置设置

以下是如何使用辅助方法保存设置的示例

Larasetting::getSetting(); // If the method is used without parameters, it will give an error

// At least two parameters, key and value, are required to create a setting,
// and its value is_active by default, which is equal to false
Larasetting::getSetting('key_name', 'vlue'); 

// If the key_name value already exists, it acts as an update and the value value is updated.
// It means that our setting will be updated
Larasetting::getSetting('key_name', 'new_value', true); 

将指定的值(MySite)分配给键(site_name)的设置。如果设置不存在,则使用提供的值创建它。

示例

以下是使用 Larasetting 进行设置管理的示例

检索所有设置

$settings = get_setting();

从数据库中检索所有设置,包括其值和活跃状态。

根据活跃状态过滤设置

$activeSettings = get_setting(null, null, true);

检索所有活跃标志设置为 true 的设置。

创建新的设置

set_setting('sms_key', '1234567890');

使用键(sms_key)和值(1234567890)创建新的设置。

更新现有设置

set_setting('site_name', 'NewSiteName');

将键(site_name)的设置值更新为 NewSiteName。如果设置不存在,则使用提供的值创建它。

异常 Larasetting 如果设置未找到且未提供默认值,则抛出 SettingRecordNotFoundException 异常。

许可证

MIT