escolalms/settings

Escola LMS 设置和自定义字段管理

安装数: 30,293

依赖: 30

建议者: 6

安全: 0

星标: 0

关注者: 1

分支: 0

公开问题: 0

类型:软件包

0.2.5 2024-03-26 09:51 UTC

README

配置管理软件包

swagger codecov phpunit downloads downloads downloads

目的

此软件包可用于注册应用程序配置密钥,然后可以通过 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),有时除了键和值之外,配置文件中的所有内容都可能被删除。使用数据库存储修改后的配置值是一种更安全的(非破坏性)选项。

端点

所有端点均定义在swagger

事件

  • EscolaLms\Settings\Events\SettingPackageConfigUpdated 在使用 Web API 更改设置时发出。

监听器

在此软件包中没有定义监听器。

如何在前端使用此软件包

管理面板

左侧菜单

Admin panel menu

单个软件包(如图中使用的 EscolaLms\Auth 软件包)的已注册设置的列表

List of registered settings for single package

编辑已注册设置

Editing registered Setting

测试

运行 ./vendor/bin/phpunit --filter 'EscolaLms\\Settings\\Tests' 以运行测试。请参阅 tests 文件夹,作为文档附录的良好起点。

测试详情:codecov phpunit

权限

权限在 枚举 中定义,并在 种子器 中初始化。

路线图。待办事项。故障排除

  • 描述此包中“设置”部分的功能(因为只描述了“配置”,而这个包还有第二个用途)