escolalms / settings
Escola LMS 设置和自定义字段管理
Requires
- php: >=7.4|>=8
- escolalms/core: ^1
- laravel/framework: >=8.0
Requires (Dev)
- orchestra/testbench: ^6
- phpunit/phpunit: ^9.0
README
配置管理软件包
目的
此软件包可用于注册应用程序配置密钥,然后可以通过 API 和/或管理面板进行修改。
安装
composer require escolalms/settings
php artisan migrate
php artisan db:seed --class="EscolaLms\Settings\Database\Seeders\PermissionTableSeeder"
- 可选:
php artisan vendor:publish --tag=escola_settings.config
发布配置文件
依赖关系
用法
配置
配置文件包含 use_database
选项,该选项确定是否将配置写入和加载到数据库中(如果为 true
),或者配置文件应被覆盖(如果为 false
);
注册配置密钥
每个软件包都可以通过在其自己的软件包服务提供者的 register
方法中调用 AdministrableConfig
门面的 registerConfig
静态方法来注册配置密钥。
use EscolaLms\Settings\Facades\AdministrableConfig; public function register(){ //... AdministrableConfig::registerConfig($key = 'config_file.config_key', $rules = ['required', 'string'], $public = true, $readonly = false); }
注册配置密钥时,您可以
- 指定可存储的值的验证规则(使用 Laravel 验证器提供的任何规则)
- 指定密钥是否为
public
(这样匿名用户可以检索值) - 指定密钥是否为
readonly
(因此它通过 API 返回,但不能使用 API 进行更改)
加载配置
如果 use_database
配置选项为真,则配置将自动从数据库加载。否则,如果选择覆盖配置文件,则使用正常的 Laravel 配置加载机制。
更改配置
EscolaLms\Settings\Facades\AdministrableConfig
门面也可以用于修改和检索已注册配置密钥的值。
AdministrableConfig::setConfig(array $config); // sets config values for any registered config key in $config array, running validation rules AdministrableConfig::getConfig(); // returns values for all registered config keys AdministrableConfig::getPublicConfig(); // returns values for config keys registered with public: true
这些方法由本软件包的 Web API 利用。
配置存储库扩展与配置重写器
此软件包扩展了 Laravel 框架的基本 config
门面,将其包裹在 EscolaLms\Settings\ConfigRewriter\ConfigRepositoryExtension
装饰器中。此扩展的配置存储库具有一个 write
方法,可以调用以将所有内存中的配置值更改直接存储到配置文件中。写入操作尝试保留原始配置文件的结构(键的顺序、注释等),但这并不总是可能的(解析此软件包使用的解析器是 WIP),有时除了键和值之外,配置文件中的所有内容都可能被删除。使用数据库存储修改后的配置值是一种更安全的(非破坏性)选项。
端点
事件
EscolaLms\Settings\Events\SettingPackageConfigUpdated
在使用 Web API 更改设置时发出。
监听器
在此软件包中没有定义监听器。
如何在前端使用此软件包
管理面板
左侧菜单
单个软件包(如图中使用的 EscolaLms\Auth 软件包)的已注册设置的列表
编辑已注册设置
测试
运行 ./vendor/bin/phpunit --filter 'EscolaLms\\Settings\\Tests'
以运行测试。请参阅 tests 文件夹,作为文档附录的良好起点。
权限
路线图。待办事项。故障排除
- 描述此包中“设置”部分的功能(因为只描述了“配置”,而这个包还有第二个用途)