Description
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.
Composed alternatives and similar libraries
Based on the "Dependency Management Extras" category.
Alternatively, view Composed alternatives based on common mentions on social networks and blogs.
-
Satis
Simple static Composer repository generator - For a full private Composer repo use Private Packagist -
Composer Merge Plugin
Merge one or more additional composer.json files at Composer runtime -
composer-normalize
:musical_note: Provides a composer plugin for normalizing composer.json. -
tooly
Simple composer script to manage phar files using project composer.json. -
Patch Installer
Patch other composer packages on install or update -
Composer Checker
A tool to validate Composer configurations.
Collect and Analyze Billions of Data Points in Real Time
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of Composed or a related project?
README
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.
*Note that all licence references and agreements mentioned in the Composed README section above
are relevant to that project's source code only.