wyrihaximus / get-in-packages-composer.jason
围绕 joshdifabio/composed 和 igorw/get-in 的函数,从 composer.json 中收集配置
Requires
- php: ^8
- drupol/composer-packages: ^2.0
- igorw/get-in: ^1.0
- mindplay/composer-locator: ^2.1
Requires (Dev)
This package is auto-updated.
Last update: 2024-09-05 06:53:58 UTC
README
安装
要通过 Composer 安装,请使用以下命令,它将自动检测最新版本并将其与 ^
绑定。
composer require wyrihaximus/get-in-packages-composer.jason
功能
以下示例是根据以下 composer.json
制作的
{ "extra": { "react-inspector": { "metrics": [ "ticks.future.current", "ticks.future.total", "ticks.future.ticks", "signals.current", "signals.total", "signals.ticks" ], "reset": { "ticks": [ "ticks.future.ticks", "signals.ticks" ] } }, "reactive-apps": { "command": { "ReactiveApps\\Command\\HttpServer\\Command": "src/Command" }, "config": [ "etc/config/app.php", "etc/config/http-server.php", "etc/config/supervisor.php" ] } } }
get_in_packages_composer
获取所有具有给定键的包的配置。传入包实例作为键,以及来自 composer.json
的配置作为值
/** * @var Composed\Package $package * @var mixed $config */ foreach (get_in_packages_composer('extra') as $package => $config) { $packagesConfig->add($package, $config); }
from_get_in_packages_composer
与 get_in_packages_composer
相同,但使用 yield from
产生每个包中的项目
foreach (from_get_in_packages_composer('extra.react-inspector.metrics') as $item) { // $item: [ // ticks.future.current, // ticks.future.total, // ticks.future.ticks, // signals.current, // signals.total, // signals.ticks, // ] }
get_in_packages_composer_path
基于 get_in_packages_composer
构建,get_in_packages_composer_path
遍历来自 get_in_packages_composer
的每个包的所有配置项,并获取给定项目值的完整路径。这对于例如配置自动发现很有用
foreach (get_in_packages_composer_path('extra.reactive-apps.config') as $path) { $config->loadFromFile($path); }
get_in_packages_composer_with_path
与 get_in_packages_composer_path
作用相同,但不是为每个项目下完整路径,而是使用该完整路径作为项目的键,以及项目的键和值。对于扫描文件目录并具有根命名空间很有用
foreach (get_in_packages_composer_with_path('extra.reactive-apps.command') as $path => $namespacePrefix) { $commands->scan($path, $namespacePrefix); }
许可证
MIT 许可证 (MIT)
版权所有 (c) 2018 Cees-Jan Kiewiet
在此特此授予任何获得本软件及其相关文档文件(“软件”)副本的人免费使用软件的权利,不受任何限制,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,并允许向软件提供的人这样做,但受以下条件的约束
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
本软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、适用于特定目的和不侵犯版权的保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论该责任是根据合同、侵权或其他方式产生的,无论该责任是否与软件或其使用或其他方式有关。