joshdifabio/composed

轻松解析项目Composer配置以及其依赖项的配置,在运行时进行。

v1.0.0 2015-07-16 22:30 UTC

This package is auto-updated.

Last update: 2024-08-26 04:08:55 UTC


README

Code Quality

此库提供了一系列实用函数,旨在帮助您在运行时解析项目的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许可证下发布。