Composer
# Composer

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 de PHP. 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. Composer está inspirado en Node.js, npm y en Bundler Ruby.

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", el repositorio principal que contiene todos los paquetes disponibles. También dispone de capacidad de auto-descarga para las librerías necesarias que se especifiquen en la información de arranque para así facilitar el uso del código de terceros.

## Sintaxis

### Comandos

Composer ofrece varios parámetros incluyendo :

* 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'.

### Definición de librerías

Ejemplo de composer.json generado por el comando siguiente:

### Versiones

Las diferentes versiones autorizadas de las librerías se definen como sigue:

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

## Frameworks soportados

* Symfony versión 2 y posteriores
* Laravel versión 4 y posteriores
* CodeIgniter versión 3.0 y posteriores
* CakePHP versión 3.0 y posteriores
* FuelPHP versión 2.0 y posteriores
* Drupal versión 8 y posteriores
* TYPO3 versión 6.2 y posteriores
* SilverStripe versión 3.0 y posteriores
* Magento versión 2.0 y posteriores
* Yii versión 1.1 and y posteriores
* Zend Framework versión 1 y posteriores
* Silex (web framework)
* Lumen (web framework)
