toanld / laravel-settings
将键值对存储在数据库中作为设置
Requires
- php: ^7.3
- laravel/framework: ~5.4.0|~5.5.0|~5.6.0|~5.7.0|~5.8.0|^6.0|^7.0|^8.0
Requires (Dev)
- mockery/mockery: ^0.9.4 || ~1.0
- orchestra/testbench: 3.8.*|4.*|5.*
- phpunit/phpunit: ^8.5
This package is auto-updated.
Last update: 2024-09-14 10:13:08 UTC
README
使用 qcod/laravel-settings
在数据库中存储键值对设置。
所有保存到数据库中的设置都进行缓存,以提高性能,减少SQL查询到零。
安装
1 - 您可以通过composer安装此包
$ composer require toanld/laravel-settings
2 - 如果您正在安装Laravel 5.4或更低版本,您需要手动注册Service Provider,将其添加到config/app.php
的providers数组中,并将Facade添加到aliases数组中。
'providers' => [ //... QCod\Settings\SettingsServiceProvider::class ] 'aliases' => [ //... "Settings" => QCod\Settings\Facade::class ]
Lumen通过将其添加到bootstrap/app.php
的providers数组中,并将Facade添加到aliases数组中来注册Service Provider。
$app = new Laravel\Lumen\Application( dirname(__DIR__) ); $app->instance('path.config', app()->basePath() . DIRECTORY_SEPARATOR . 'config'); $app->instance('path.storage', app()->basePath() . DIRECTORY_SEPARATOR . 'storage'); $app->register(QCod\Settings\SettingsServiceProvider::class); if (!class_exists('Settings')) { class_alias('QCod\Settings\Facade', 'Settings'); }
在Laravel 5.5或更高版本中,服务提供程序会自动注册,并且将提供Setting::get('app_name')门面。
3 - 现在运行迁移php artisan migrate
以创建设置表。
可选:通过运行来发布迁移
php artisan vendor:publish --provider="QCod\Settings\SettingsServiceProvider" --tag="migrations"
入门
您可以使用辅助函数settings('app_name')
或Settings::get('app_name')
来使用laravel设置。
可用方法
// Pass `true` to ignore cached settings settings()->all($fresh = false); // Get a single setting settings()->get($key, $defautl = null); // Set a single setting settings()->set($key, $value); // Set a multiple settings settings()->set([ 'app_name' => 'QCode', 'app_email' => 'info@email.com', 'app_type' => 'SaaS' ]); // check for setting key settings()->has($key); // remove a setting settings()->remove($key);
分组
从v 1.0.6
开始,您可以按组组织设置。如果您跳过组名,则将设置存储为default
组名。
如果您是从旧版本更新,请务必运行迁移
您可以使用上面所有方法,只需通过调用->group('group_name')
方法设置您的工作组并链接即可
settings()->group('team.1')->set('app_name', 'My Team App'); settings()->group('team.1')->get('app_name'); > My Team App settings()->group('team.2')->set('app_name', 'My Team 2 App'); settings()->group('team.2')->get('app_name'); > My Team 2 App // You can use facade \Settings::group('team.1')->get('app_name') > My Team App
变更日志
有关最近更改的更多信息,请参阅CHANGELOG。
测试
该包包含一些集成/冒烟测试,使用Orchestra设置。可以通过phpunit运行测试。
$ composer test
贡献
有关详细信息,请参阅CONTRIBUTING。
安全
如果您发现任何安全相关的问题,请通过电子邮件saquibweb@gmail.com联系,而不是使用问题跟踪器。
鸣谢
关于QCode.in
QCode.in (https://www.qcode.in)是Saqueib的博客,涵盖全栈Web开发的所有内容。
许可
MIT许可证(MIT)。有关更多信息,请参阅许可文件。