rinvex / laravel-settings
Rinvex Settings 是一款 Laravel 设置管理包。您可以轻松添加、更新和删除应用程序设置,并且可以使用类似于 Laravel 默认配置选项的方式使用它。它具有在运行时覆盖配置选项的能力,并且自带支持可租户功能。
此包的官方仓库似乎已消失,因此该包已被冻结。
Requires
- php: ^8.1.0
- illuminate/console: ^10.0.0 || ^11.0.0
- illuminate/contracts: ^10.0.0 || ^11.0.0
- illuminate/database: ^10.0.0 || ^11.0.0
- illuminate/filesystem: ^10.0.0 || ^11.0.0
- illuminate/support: ^10.0.0 || ^11.0.0
- rinvex/laravel-support: ^7.0.0
- spatie/eloquent-sortable: ^4.0.0
- spatie/laravel-sluggable: ^3.3.0
- spatie/laravel-translatable: ^6.0.0
- symfony/console: ^6.2.0
Requires (Dev)
- codedungeon/phpunit-result-printer: ^0.32.0
- illuminate/container: ^10.0.0 || ^11.0.0
- phpunit/phpunit: ^10.1.0
This package is auto-updated.
Last update: 2024-07-04 09:42:26 UTC
README
Rinvex Settings
Rinvex Settings 是一款 Laravel 设置管理包。您可以轻松添加、更新和删除应用程序设置,并且可以使用类似于 Laravel 默认配置选项的方式使用它。它具有在运行时覆盖配置选项的能力,并且自带支持可租户功能。
安装
-
使用 composer 安装此包
composer require rinvex/laravel-settings
-
发布资源(迁移和配置文件)
php artisan rinvex:publish:settings
-
通过以下命令执行迁移
php artisan rinvex:migrate:settings
-
完成!
使用方法
值得一提的是,此包的 API 是受 Laravel 默认配置选项启发的,并且与它紧密结合。
访问设置值
您可以使用全局 setting
函数从应用程序的任何位置轻松访问您的设置值。设置值可以通过“点”语法访问,包括您要访问的设置组和选项的名称。还可以指定一个默认值,如果设置选项不存在,则返回该默认值。
$value = setting('meta.description'); // Retrieve a default value if the configuration value does not exist... $value = config('meta.description', 'Rinvex Settings is a Laravel package for setting management.');
要在运行时设置配置值,请将一个数组传递给 config 函数
config(['meta.description' => 'You can add, update, and delete application settings with ease, and use like the detaul Laravel config options.']);
更多示例
// Retrieve individual setting $metaKeywords = setting('meta.keywords'); $metaDescription = setting('meta.description'); // Retrieve individual setting of an overridden config option $appName = setting(‘app.name’); // Retrieve group of settings $meta = setting('meta’); // Retrieve a default value if the setting value does not exist $metaAuthor = setting('meta.author', 'Abdelrahman Omran'); // Set runtime setting values setting(['meta.author' => 'Omranic']); setting(['new.setting.key’ => Some Value Here!']);
注意
- 此包会自动遍历所有设置并将它们加载到一个 IoC 集合中。
- 它支持设置嵌套、可租户功能(如果可用)以及配置选项覆盖。
- 它会在应用程序启动时早期执行,这使得所有选项在整个应用程序中都可以使用。
- 设置的底层类基本上是 Laravel Eloquent 模型,这意味着您可以使用相同直观的方式使用它。
配置缓存
为了给您的应用程序提速,您应该使用 setting:cache
Artisan 命令将所有设置缓存到一个文件中。这将把您应用程序的所有配置选项合并到单个文件中,该文件可以由框架快速加载。
通常,您应该在生产部署过程中运行 php artisan setting:cache
命令。在本地开发期间不应运行此命令,因为设置在应用程序开发过程中可能会频繁更改。
注意
- 由于设置缓存会动态地覆盖应用程序的全局设置,因此我们尚未找到处理可租户设置缓存的方法,因此目前禁用了设置缓存。
高级使用方法
设置可以覆盖默认配置选项。请注意,如果不小心使用,这可能会改变您应用程序的默认行为。
要使用设置覆盖任何配置选项,只需创建一个新的设置,其键与该配置选项相同(例如:app.name
),然后将 override_config
属性设置为 TRUE,设置您想要设置的覆盖值,并保存设置。下次您的应用程序启动并调用 config('app.name')
时,它将自动检索您为 setting('app.name')
设置的值。
注意
- 此
override_config
功能不是为了覆盖一些核心配置选项,例如数据库连接细节等,因为数据库连接配置选项是必需的,并且在非常早的阶段加载。在覆盖配置选项时要小心。
更新日志
请参阅变更日志以获取项目的完整历史。
支持
以下支持渠道随时可供您使用:
贡献与协议
感谢您考虑为此项目做出贡献!贡献指南可以在CONTRIBUTING.md中找到。
我们非常欢迎错误报告、功能请求和拉取请求。
安全漏洞
我们希望确保这个软件包对每个人都是安全的。如果您在这个软件包中发现了一个安全漏洞,我们感谢您以负责任的方式向我们披露。
公开披露漏洞可能会使整个社区面临风险。如果您发现了一个安全问题,请通过电子邮件发送给我们help@rinvex.com。我们将与您合作,确保我们完全理解问题的范围,并充分解决您的问题。我们将把发送到help@rinvex.com的邮件视为最高优先级,并尽快解决任何出现的问题。
在纠正安全漏洞后,将尽快部署安全修复版本。
关于Rinvex
Rinvex是一家软件解决方案初创公司,自2016年6月在埃及亚历山大成立以来,专门为中小企业提供集成企业解决方案。我们相信,我们的动力在于“价值、影响力和影响力”,这是我们区别于其他公司的因素,并通过软件的力量释放我们哲学的无限可能性。我们喜欢称它为“生活节奏的创新”。这就是我们如何为人类进步贡献自己的一份力量。
许可证
此软件根据MIT许可证(MIT)发布。
版权所有 (c) 2016-2022 Rinvex LLC,部分权利保留。