joshdifabio / composed
轻松解析项目Composer配置以及其依赖项的配置,在运行时进行。
v1.0.0
2015-07-16 22:30 UTC
Requires
- php: >=5.3
This package is auto-updated.
Last update: 2024-08-26 04:08:55 UTC
README
此库提供了一系列实用函数,旨在帮助您在运行时解析项目的Composer配置以及其依赖项的配置。
用法
API结合了函数式和面向对象的方法。
定位供应商目录
(鸡生蛋,蛋生鸡...)
$absoluteVendorPath = Composed\VENDOR_DIR;
定位项目的基准目录
$absoluteProjectPath = Composed\BASE_DIR;
获取特定软件包的作者
您可以从特定软件包的composer.json
文件获取数据。
$authors = Composed\package_config('phpunit/phpunit', 'authors'); assert($authors === [ [ 'name' => "Sebastian Bergmann", 'email' => "sebastian@phpunit.de", 'role' => "lead", ], ]);
获取所有已安装软件包的许可证
您一次可以从项目中的所有composer.json
文件获取数据。
$licenses = Composed\package_configs('license'); assert($licenses === [ 'joshdifabio/composed' => "MIT", 'doctrine/instantiator' => "MIT", 'phpunit/php-code-coverage' => "BSD-3-Clause", ]);
获取软件包中文件的绝对路径
$path = Composed\package('phpunit/phpunit')->getPath('composer.json');
获取项目中安装的所有软件包
foreach (Composed\packages() as $packageName => $package) { $pathToPackageConfig = $package->getPath('composer.json'); // ... }
从项目的Composer配置中获取数据
您也可以从项目根目录中的composer.json
文件获取数据。
$projectAuthors = Composed\project_config('authors'); assert($projectAuthors === [ [ 'name' => 'Josh Di Fabio', 'email' => 'joshdifabio@somewhere.com', ], ]);
安装
使用composer安装Composed。
composer require joshdifabio/composed
致谢
感谢@igorw,他的get-in库部分被复制到这个库中。遗憾的是,igorw/get-in
需要PHP 5.4,而Composed旨在实现PHP 5.3的兼容性。
许可证
Composed在MIT许可证下发布。