flyingmana/composer-config-reader

a fork of eloquent/composer-config-reader, A light-weight component for reading Composer configuration files.

20.0.1 2020-11-08 09:03 UTC

This package is auto-updated.

Last update: 2024-10-08 18:14:22 UTC


README

A light-weight component for reading Composer configuration files.

Current version image Current build status image Current coverage status image

Installation and documentation

Usage

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.

Configuration

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).

Stability

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

  • DEV
  • ALPHA
  • BETA
  • RC
  • STABLE

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

Author

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.

SupportInformation

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.

ProjectConfiguration

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.

ScriptConfiguration

This object describes the Composer scripts defined by the package.

See Scripts.

Example methods

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

ArchiveConfiguration

This object describes the settings for creating package archives.

See archive.

Example methods

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