composed
                                
                                
                                
                                    composed copied to clipboard
                            
                            
                            
                        Easily parse your project's Composer configuration, and those of its dependencies, at runtime
Composed
This library provides a set of utility functions designed to help you parse your project's Composer configuration, and those of its dependencies, at runtime.
Usage
The API combines functional and object-oriented approaches.
Locate the vendor directory
(Chicken and egg...)
$absoluteVendorPath = Composed\VENDOR_DIR;
Locate the project's base directory
$absoluteProjectPath = Composed\BASE_DIR;
Get the authors of a specific package
You can fetch data from the composer.json file of a specific package.
$authors = Composed\package_config('phpunit/phpunit', 'authors');
assert($authors === [
    [
        'name' => "Sebastian Bergmann",
        'email' => "[email protected]",
        'role' => "lead",
    ],
]);
Get licenses of all installed packages
You can fetch data from all composer.json files in your project in one go.
$licenses = Composed\package_configs('license');
assert($licenses === [
  'joshdifabio/composed' => "MIT",
  'doctrine/instantiator' => "MIT",
  'phpunit/php-code-coverage' => "BSD-3-Clause",
]);
Get the absolute path to a file in a package
$path = Composed\package('phpunit/phpunit')->getPath('composer.json');
Get all packages installed on your project
foreach (Composed\packages() as $packageName => $package) {
    $pathToPackageConfig = $package->getPath('composer.json');
    // ...
}
Get data from your project's Composer config
You can also fetch data from the composer.json file located in your project root.
$projectAuthors = Composed\project_config('authors');
assert($projectAuthors === [
    [
        'name' => 'Josh Di Fabio',
        'email' => '[email protected]',
    ],
]);
Installation
Install Composed using composer.
composer require joshdifabio/composed
Credits
Credit goes to @igorw whose get-in library is partially copied into this library. Unfortunately, igorw/get-in requires PHP 5.4 while Composed aims for PHP 5.3 compatibility.
License
Composed is released under the MIT license.