Logo

0x5a.live

for different kinds of informations and explorations.

GitHub - joshdifabio/composed: Easily parse your project's Composer configuration, and those of its dependencies, at runtime

Easily parse your project's Composer configuration, and those of its dependencies, at runtime - joshdifabio/composed

Visit SiteGitHub - joshdifabio/composed: Easily parse your project's Composer configuration, and those of its dependencies, at runtime

GitHub - joshdifabio/composed: Easily parse your project's Composer configuration, and those of its dependencies, at runtime

Easily parse your project's Composer configuration, and those of its dependencies, at runtime - joshdifabio/composed

Powered by 0x5a.live 💗

Composed

Code Quality

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.

PHP Resources

are all listed below.

Resources

listed to get explored on!!

Made with ❤️

to provide different kinds of informations and resources.