takethelead / laravel-settings
通过数据库管理配置设置
1.5.0
2024-05-16 07:42 UTC
Requires
- php: ^8.1|^8.2|^8.3
- ext-json: *
- illuminate/config: ^10.0|^11.0
- illuminate/database: ^10.0|^11.0
- illuminate/events: ^10.0|^11.0
- illuminate/validation: ^10.0|^11.0
- nesbot/carbon: ^2.71
Requires (Dev)
- orchestra/testbench: ^8.0|^9.0
- phpro/grumphp: ^1.8|^2.0
- phpunit/phpunit: ^10.5
- squizlabs/php_codesniffer: ^3.5
- symfony/var-dumper: ^6.2|^7.0
This package is auto-updated.
Last update: 2024-09-16 08:18:57 UTC
README
使用数据库中的值覆盖配置设置。
安装
您可以通过 composer 安装此包
composer require takethelead/laravel-settings
为了使用此包,您需要发布其配置文件
php artisan vendor:publish --provider="TakeTheLead\Settings\SettingsServiceProvider" --tag="config"
并且迁移数据库
php artisan migrate
用法
覆盖值
此包允许您定义应该用数据库中的值覆盖的配置值。这些配置值的键可以在 config/laravel-settings.php
中定义,其中您可以找到一个名为 overwrites
的键。
它是如何工作的?
想象以下配置文件
<?php // config/some-config-file.php return [ 'key1' => 'fallback_value_for_key_1', 'key2' => 'fallback_value_for_key_2, ];
为了覆盖 key2
的值,您必须在数据库中创建一个新的设置。您可以通过运行以下 artisan 命令(或通过创建迁移)来完成此操作
// Updates an existing setting or creates a new one if it does not exists.
php artisan laravel-settings:update fallback_value_for_key_2
请注意,字符串值将加密存储
现在我们已经创建了数据库中的新设置,我们必须告诉应用程序覆盖它。您可以在 config/laravel-settings.php
中这样做
// ... 'overwrites' => [ 'some-config-file.key2' => 'the_database_setting_key_you_choose_in_the_previous_step', ], // ....
就这样,每次您运行 config('some-config-file.key2')
时,您将得到数据库中的值而不是配置文件中的回退值。
这会影响性能吗?
不会,我们缓存所有设置。因此,每当一个设置被覆盖一次,我们将永久缓存其查询结果。除非您更改设置的值,否则我们将清除缓存,并需要再次查询该设置。
如果您使用 php artisan config:cache
缓存配置文件,覆盖的值也将被缓存,并且在请求过程中不会执行查询。
可用的 artisan 命令
测试
composer test
变更日志
请参阅 CHANGELOG 了解最近更改的更多信息。
贡献
请参阅 CONTRIBUTING 了解详细信息。
安全漏洞
请参阅 我们的安全策略 了解如何报告安全漏洞。
致谢
许可证
MIT 许可证(MIT)。请参阅 许可证文件 了解更多信息。