Blog de conocimiento gratuito: linux, programación, open source, bases de datos, android, frameworks, web e informática en general.
Todo el mundo habla de composer y ahora las dependencias de los proyectos de PHP son gestionados por este, valga la redundancia, gestor.
En este post explicaré por qué usar composer, cómo usarlo, instalarlo y cómo funciona a grandes rasgos.
Ya he escrito un tutorial anteriormente, míralo aquí.
Todo proyecto de PHP, en algún momento, llega a necesitar dependencias. Por ejemplo, una librería que te facilita las cosas.
Es ahí cuando las dependencias entran en juego. Normalmente tú dirás “No pasa nada, descargo las clases y archivos de la librería y listo”; tendrás razón pero ahora veamos las desventajas:
include
s o require
s para tener todos los paquetesEs por ello que composer viene a solucionar esos problemas, aparte de que proporciona un entorno en donde todos pueden publicar librerías.
El uso es fácil, una vez que ya tengas composer instalado puedes comenzar un proyecto con:
composer init
Ello creará un composer.json que es en donde está la lista de dependencias y otras cosas, así como una carpeta llamada vendor que será en donde pondrá tus dependencias.
Normalmente los programadores que publican su librería te dan una pista de cómo instalar la dependencia. Por ejemplo, para instalar libmergepdf es:
composer require iio/libmergepdf:^4.0
Lo único que tienes que hacer es ejecutarlo. O sea que la sintaxis es:
composer require autor/librería
Pero a veces, si necesitas una versión específica se puede poner con los dos puntos. En este caso ^:4.0 significa superior a la versión 4.
Hay algunas dependencias (dependencies) que son usadas por tu proyecto y otras llamadas dev-dependencies que usas durante el desarrollo pero que no están disponibles a la hora de publicar o sacar tu proyecto; o sea, solamente las usas tú como programador.
Bueno, ya vimos cómo funciona y todo eso pero no hemos visto código. Como lo dije, composer genera una carpeta vendor y dentro de ella un autoload.php.
Lo que tienes que hacer es incluir el autoload en donde quieras usar las librerías o clases, y listo.
Por ejemplo, tengo un proyecto vacío pero con unas librerías y se ve así:
Dentro de mi proyecto voy a crear un archivo index.php (podría tener otro nombre) y requiero el autoload.php así:
Eso es lo único necesario, de ahí ya puedo usar todas las clases, librerías y paquetes con el simple hecho de requerir el autoload. Su nombre lo dice: es autoload, es decir, autocarga las librerías y paquetes.
Si en el futuro se agregan más librerías, serán cargadas de manera automática.
Si crees que es hora de actualizar tus librerías o estás obligado a hacerlo, hazlo con:
composer update
Si alguien te pasó su proyecto que ya tiene composer.json entonces tienes que instalar las librerías. Por ello es que debes ejecutar:
composer install
Eso leerá el composer.json e instalará la última versión de las librerías. ¿Fabuloso, no?
No soy experto ni he mirado el código del gestor, pero así funciona:
Eso fue a grandes rasgos, pero obviamente el gestor es muchísimo más que eso.
A veces necesitamos cargar más código además del que tienen las librerías, si ese es tu caso entonces mira cómo cargar tus propias clases con Composer en este post.
3 pensamientos en "Primeros pasos con Composer y explicación de su funcionamiento"