takethelead/laravel-settings

通过数据库管理配置设置

1.5.0 2024-05-16 07:42 UTC

This package is auto-updated.

Last update: 2024-09-16 08:18:57 UTC


README

Latest Version on Packagist GitHub Tests Action Status Total Downloads

使用数据库中的值覆盖配置设置。

安装

您可以通过 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)。请参阅 许可证文件 了解更多信息。