eventpoints / composer-json-parser
将您的 composer.json 作为对象访问
1.0.0
2024-03-26 17:14 UTC
Requires
- php: ^8.2
- doctrine/orm: ^3.1
Requires (Dev)
- phpunit/phpunit: ^9.5
- rector/rector: ^0.18.1
- symplify/easy-coding-standard: ^12.0
This package is not auto-updated.
Last update: 2024-09-29 20:38:20 UTC
README
提取所有 composer.json 文件数据,将其转换为对象,并提供一些有用的方法以便快速查询依赖数据。
- 不再需要解析 JSON,节省时间。
- 不再需要处理数组,无需烦扰数组键。
- 不再需要处理不一致性和错误处理。
安装
composer require eventpoints/composer-json-parser
使用方法
基本使用
public function someMethod() : void { // This will extract the composer.json file data return a (Composer)[https://github.com/eventpoints/composer-json-parser/blob/main/src/Model/Composer.php] object $composer = (new ParserFacade())->extract(); }
例如,任何集合的包(例如 $composer->getRequires()
)将返回一个 Doctrine 的 ArrayCollection,因此您可以访问所有可用的默认方法,这使得查询依赖项变得非常容易。例如,获取所有要求包并按版本大于 8.0 过滤的示例
public function someMethod() : void { $composer = (new ParserFacade())->extract(); $package = $composer->getRequires()->findFirst(fn(int $key, Package $package) => $package->getPackageVersion()->getVersion() > 8.0 ); var_dump($package); // object(ComposerJsonParser\Model\Package)#21 (3) { // ["name":"ComposerJsonParser\Model\Package":private]=> // string(3) "php" // ["type":"ComposerJsonParser\Model\Package":private]=> // enum(ComposerJsonParser\Enum\PackageTypeEnum::DEVELOPMENT) // ["packageVersion":"ComposerJsonParser\Model\Package":private]=> // object(ComposerJsonParser\Model\PackageVersion)#22 (2) { // ["version"]=> // float(8.2) // ["versionConstraints"]=> // string(1) "^" // } // } }
按名称获取包的示例使用
public function someMethod() : void { $composer = (new ParserFacade())->extract(); $package = $composer->getPackageByName('rector/rector'); var_dump($package); // object(ComposerJsonParser\Model\Package)#29 (3) { // ["name":"ComposerJsonParser\Model\Package":private]=> // string(13) "rector/rector" // ["type":"ComposerJsonParser\Model\Package":private]=> // enum(ComposerJsonParser\Enum\PackageTypeEnum::REQUIRE) // ["packageVersion":"ComposerJsonParser\Model\Package":private]=> // object(ComposerJsonParser\Model\PackageVersion)#30 (2) { // ["version"]=> // float(0.18) // ["versionConstraints"]=> // string(1) "^" // } // } }