fi1a / package-config
包配置管理
Requires
- php: ^7.3 || ^8
- composer-plugin-api: ^2.0
- ext-json: *
- fi1a/collection: ^2.0
- fi1a/config: ^2.1
- fi1a/dependency-injection: ^1.0
- fi1a/facade: dev-master
- fi1a/filesystem: ^1.0
Requires (Dev)
- captainhook/captainhook: ^5.4
- composer/composer: ^2.0
- phpunit/phpunit: ^9.3
- slevomat/coding-standard: ^6.3
- squizlabs/php_codesniffer: ^3.5
- vimeo/psalm: ^4.3
This package is auto-updated.
Last update: 2024-09-18 12:24:15 UTC
README
该包提供在您的包中使用配置文件的功能。它将所有安装包的配置文件合并为一个,并提供按组访问。该包实现了Composer的插件系统,该系统在安装新包时直接构建配置。
安装
可以使用Composer将该包安装为依赖项。
composer require fi1a/package-config
使用
该包是一个Composer插件。安装或删除包时,将调用事件处理器,它们将启动配置构建
- 检查已安装包的
composer.json
文件中extra
部分是否存在package-config
键; - 形成所有包的配置文件映射,并保存在文件
vendor/fi1a/package-config/runtime/.map.json
中。
composer.json
文件中extra
部分的package-config
键可以具有以下结构
{ "extra": { "package-config": { "params": "params.php", "web": "web.php", "modules": [ { "sort": 1000, "file": "modules2.php" }, { "sort": 900, "file": "modules1.php" } ] } } }
params
、web
和modules
是配置组名称。根据此参数,将组合配置中的值(例如,来自params.php
文件的配置将记录在params
组中,并可通过该值访问)。
params.php
、web.php
、modules1.php
和modules2.php
是configs
目录中配置文件的名字。
sort
键的值表示在合并前按哪个排序对配置文件进行排序。相应地,此参数影响哪个配置文件中的值将被重写。对于包,默认排序为500,对于根包为1000。
包的配置文件必须放在您的包的configs
目录中。
要访问配置文件值,可以使用助手config(string $group)
config('params')->get('foo:bar:baz', 'defaultValue');
助手返回包fi1a/config
中的Fi1a\Config\ConfigValuesInterface
对象。该类允许通过路径(foo:bar:baz)访问数组键。
命令
插件向Composer添加了package-config-publish
和package-config-rebuild
命令。
package-config-publish
命令将包的配置文件发布到根包的configs
目录
composer package-config-publish <package-name> [files]
发布包的所有配置文件
composer package-config-publish foo/bar
发布指定的配置文件
composer package-config-publish foo/bar params.php web.php
package-config-rebuild
命令启动配置构建。当添加新配置文件或更改排序需要重新创建配置文件映射时,这将很有用。
composer package-config-rebuild