A light-weight component for reading Composer configuration files.

Installs: 158 594

Dependents: 5

Stars: 14

Watchers: 4

Forks: 1

Open Issues: 2

Language: PHP

2.0.0 2014-01-22 01:05 UTC


A light-weight component for reading Composer configuration files.

The most recent stable version is 2.0.0 Current build status image Current coverage status image

Installation and documentation


Composer configuration reader is very simple to use, and a quick example should be self-explanatory:

$reader = new Eloquent\Composer\Configuration\ConfigurationReader;
$configuration = $reader->read('/path/to/composer.json');

echo $configuration->name(); // outputs the package name

Configuration objects

The following are the objects used to represent the configuration information. For a more detailed overview of the data available, simply look through the class definition (these classes are very simple).

The following classes all exist in the Eloquent\Composer\Configuration\Element namespace.


This is the main configuration object and has methods to access all the information available in the Composer schema.

Example methods
  • name(): The package name.
  • description(): The package description.
  • dependencies(): Equivalent to Composer require.
  • devDependencies(): Equivalent to Composer require-dev.
  • autoloadPSR0(): The autoload information for PSR-0 namespaces/paths.
  • autoloadClassmap(): The autoload information for classmapped paths.
Helper methods

A number of helper methods exist on the main configuration object to simplify the process of extracting useful information:

  • projectName(): The project name without the vendor prefix.
  • vendorName(): The vendor name without the project suffix.
  • allDependencies(): Combines require and require-dev into a single array.
  • allPSR0SourcePaths(): A flat array of all PSR-0-compliant source paths.
  • allSourcePaths(): A flat array of all source paths.

Repository, PackageRepository

These objects describe the package's defined repositories.

All repositories are represented by the Repository class, except for package-type repositories which use the PackageRepository class.

See Repositories.

Example methods
  • type(): The repository type.
  • url(): The repository URL (not available for PackageRepository).


This object is an enumeration of package stabilities, with the following members:

  • DEV
  • BETA
  • RC

It is currently only used to represent the value of the minimum-stability option.


This object contains all information provided for a specific author.

See authors.

Example methods
  • name(): The author's name.
  • email(): The author's email address.


This object describes the package's support contact information.

See support.

Example methods
  • email(): The support email address.
  • issues(): The URL of the issue tracking system.
  • wiki(): The URL of the wiki system.


This object describes configuration options specific to end-projects, such as the target directories for various resources provided by Composer.

See config.

Example methods
  • vendorDir(): The project's vendor directory path.
  • binDir(): The project's binary directory path.


This object describes the Composer scripts defined by the package.

See Scripts.

Example methods
  • preInstallCmd(): The pre-install scripts.
  • postInstallCmd(): The post-install scripts.


This object describes the settings for creating package archives.

See archive.

Example methods
  • exclude(): A list of file exclusion patterns.