amirsahra / larasetting
v1
2024-02-09 05:18 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