spartaksun / get-in-packages-composer.jason
围绕 joshdifabio/composed 和 igorw/get-in 的功能,从 composer.json 中收集配置
Requires
- php: ^8.0
- igorw/get-in: ^1.0
- joshdifabio/composed: ^1.0
Requires (Dev)
This package is auto-updated.
Last update: 2024-08-29 00:37:04 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
在此特此授予任何获得此软件及其相关文档副本(“软件”)的人免费使用软件的权利,不受任何限制,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许软件的提供者为此目的而使用软件,前提是遵守以下条件
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、针对特定目的的适用性和非侵权性保证。在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责,无论这些责任是根据合同、侵权或其他法律产生,还是与软件或其使用或其他交易有关。