Jump to content

Composer (software)

From Wikipedia, the free encyclopedia
Composer
Developer(s)Nils Adermann,
Jordi Boggiano
Initial releaseMarch 1, 2012;12 years ago(2012-03-01)[1]
Stable release
2.7.9[2]Edit this on Wikidata / 4 September 2024;23 days ago(4 September 2024)
Repository
Written inPHP
Operating systemCross-platform
TypePackage manager
LicenseMIT License
Websitegetcomposer.org

Composeris anapplication-level dependency managerfor thePHPprogramming languagethat provides a standard format for managing dependencies of PHP software and requiredlibraries.It was developed by Nils Adermann and Jordi Boggiano, who continue to manage the project. They began development in April 2011 and first released it on March 1, 2012.[1]Composer is strongly inspired byNode.js's"npm"andRuby's"bundler".[3]The project's dependency solving algorithm started out as a PHP-based port of openSUSE'slibzyppSAT solver.[4]

Composer runs from thecommand lineand installs dependencies (e.g. libraries) for an application. It also allows users to install PHP applications that are available on "Packagist"[5]which is its main repository containing available packages. It also providesautoloadcapabilities for libraries that specify autoload information to ease usage of third-party code.

Syntax

[edit]

Commands

[edit]

Composer offers several parameters including:[6]

  • require:add the library in parameter to the file composer.json, and install it.
  • install:install all libraries from composer.json. It's the command to use to download all PHP repository dependencies.
  • update:update all libraries from composer.json, according to the allowed versions mentioned into it.
  • remove:uninstall a library and remove it from composer.json.

Libraries definition

[edit]

Example of composer.json generated by the following command:

composer require monolog/monolog
{
"require":{
"monolog/monolog":"1.2.*"
}
}

Versions

[edit]

The different authorized versions of the libraries are defined by:[7]

Symbol Role (placed before a version number) Example
>= allows to extend the number. Moreover, we can use: >, <, <=. "php": ">=5.5.9"includes PHP 7.
!= excludes a version.
- defines a range of versions.
* extends to all subversions. "symfony/symfony": "3.1.*"includes the 3.1.1.
~ extends to the next versions of the same level. "doctrine/orm": "~2.5"also concerns the 2.6, but neither the 2.4 nor the 3.0.
^ same as tilde, only if there is abackward compatibility.

Supported frameworks

[edit]

See also

[edit]

References

[edit]
  1. ^abSoftware release,github.com, Retrieved April 24, 2016.
  2. ^"Release 2.7.9".4 September 2024.Retrieved21 September2024.
  3. ^Getting Started/Dependency management,getcomposer.org, Retrieved November 28, 2013.
  4. ^"composer/composer".Jun 23, 2020.RetrievedJun 24,2020– via GitHub.
  5. ^Seepackagist.org
  6. ^"Command-line interface / Commands".getcomposer.org.
  7. ^"Versions and constraints - Composer".getcomposer.org.
[edit]