Composer es una de las herramientas fundamentales para desarrollar aplicaciones y páginas web en lenguaje PHP, ya que permite administrar las dependencias de nuestro proyecto con las distintas librerías externas que necesitemos usar. Composer instala las librerías que el proyecto necesita en una carpeta del propio proyecto. Vamos a ver como funciona con un ejemplo:
Supongamos que nuestro proyecto PHP necesita generar archivos Excel. En lugar de crear todo el código necesario desde cero, miramos en Packagist si alguien ha creado una herramienta open-source que haga lo que necesitamos y vemos que existe una librería llamada PHPExcel. Esa librería a su vez necesitará otras, probáblemente. En lugar de descargar el código fuente de la librería y buscar las dependencias dejamos que sea Composer el que resuelva el problema.
Para ello lo primero será tener instalado Composer en el PC, ya sea de forma global o en el directorio raíz del proyecto. Composer es un programa escrito en php que descargaremos y ejecutaremos.
$ curl -sS https://getcomposer.org/installer | php
Obtendremos un archivo llamado composer.phar
que luego para instalarlo globalmente podemos moverlo a un directorio del path como /usr/bin
o /usr/local/bin
, dándole permisos de ejecución.
$ mv composer.phar /usr/local/bin/composer
$ chmod a+x /usr/local/bin/composer
Una vez tenemos Composer instalado de forma global, creamos el archivo composer.json
en la raíz de nuestro proyecto:
{ "require": { "phpoffice/phpexcel": "dev-master" } }
Y entonces usamos composer
para que resuelva las dependencias:
$ composer install
La ejecución de composer
crea la carpeta vendor
y descarga automáticamente la librería phpexcel
y las dependencias de ésta si las hay. También crea un archivo llamado autoload.php
que será necesario incluir en nuestro proyecto para usar las librerías creadas por composer
.
<?php require __DIR__ .'/vendor/autoload.php';
Requerimientos:
Al ser un programa escrito en PHP Composer es multiplataforma por lo que funciona tanto en Linux como en OSX y en Windows. Necesita una versión de PHP 5.3.2 o superior y puede requerir modificar alguna configuración en php.ini
, pero el propio instalador informa de cualquier incompatibilidad. Además es conveniente tener instalado Git, Svn u otras herramientas para el control de código fuente.
Enlaces:
- Sitio web oficial de Composer [EN]
- Página de descarga e instalación de Composer [EN]
- Composer, el manual oficial (libro) [ES]
- ¿Que es Composer?. Por Andrés Vergara [ES]
- Manejo de Dependencias en PHP con Composer [ES]
- Packagist.org Repositorios de código fuente [EN]