Composer es un sistema de gestión de paquetes para programar en PHP el cual provee los formatos estándar necesarios para manejar dependencias y librerías. Fue desarrollado por Nils Adermann y Jordi Boggiano quienes continúan dirigiendo el proyecto. Ambos comenzaron el desarrollo en abril de 2011 y en marzo de 2012 presentaron la primera versión.[1] Composer está inspirado en Node.js, npm y en Bundler Ruby.[3]
Composer | ||
---|---|---|
![]() | ||
Información general | ||
Tipo de programa | Sistema de gestión de paquetes | |
Desarrollador |
Nils Adermann, Jordi Boggiano | |
Modelo de desarrollo | Licencia de código abierto | |
Lanzamiento inicial | 1 de marzo de 2012[1] | |
Licencia | Licencia MIT | |
Estado actual | Activo | |
Información técnica | ||
Programado en | PHP | |
Versiones | ||
Última versión estable | 2.8.11 (21 de agosto de 2025 (1 mes y 11 días)[2]) | |
Enlaces | ||
Sitio web oficial
Repositorio de código
| ||
Composer trabaja e instala dependencias o librerías desde la línea de comandos. También permite al usuario instalar las aplicaciones PHP que estén disponibles en el "Packagist",[4] el repositorio principal que contiene todos los paquetes disponibles. También dispone de capacidad de autodescarga para las librerías necesarias que se especifiquen en la información de arranque para así facilitar el uso del código de terceros.
Composer ofrece varios parámetros incluyendo :[5]
require
: añade el parámetro de la librería al archivo composer.json y lo instala.install
: instala todas las librerías de composer.json. Es el comando que se usa para descargar todas las dependencias PHP desde el repositorio.update
: actualiza las librerías de composer.json de acuerdo a las versiones permitidas que se señalen.remove
: desinstala una librería y la elimina de 'composer.json'.Ejemplo de composer.json generado por el comando siguiente:
composer require monolog/monolog
{
"require": {
"monolog/monolog": "1.2.*"
}
}
Las diferentes versiones autorizadas de las librerías se definen como sigue:[6]
Símbolo | Función (colocado antes del número de versión) | Ejemplo |
---|---|---|
>= | permite extender el número. Además podemos usar: >, <, <=. | "php": ">=5.5.9" includes PHP 7.
|
!= | excluye una versión. | |
- | define un rango de versiones. | |
¦¦ | añade posibles versiones. | "symfony/symfony": "2.8 ¦¦ 3.0" regroups only these two versions.
|
* | extiende a todas las sub-versiones. | "symfony/symfony": "3.1.*" includes the 3.1.1.
|
~ | extiende a la siguiente versión del mismo nivel. | "doctrine/orm": "~2.5" also concerns the 2.6, but neither the 2.4 nor the 3.0.
|
^ | solo si existe compatibilidad con anteriores versiones. |