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.

Cómo instalar Composer para gestionar dependencias de PHP

Ya he escrito un tutorial anteriormente, míralo aquí.

¿Por qué usar composer?

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:

  • Si quieres actualizar la librería (qué tal si se encontró una vulnerabilidad) tienes que eliminarla, descargar la nueva y adaptarla
  • En caso de que le pases tu proyecto a un amigo o lo publiques en internet, las demás personas tendrán que descargar manualmente las librerías
  • Dentro del código tienes que hacer miles de includes o requires para tener todos los paquetes
  • Por si olvidas una dependencia, nadie estará ahí para recordártelo

Es por ello que composer viene a solucionar esos problemas, aparte de que proporciona un entorno en donde todos pueden publicar librerías.

Cómo usar composer en PHP

El uso es fácil, una vez que ya tengas composer instalado puedes comenzar un proyecto con:

Relacionado:  Notificaciones en AngularJS con angular-ui-notification

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.

Las dependencias y las dependencias de desarrollo

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.

Usar composer en PHP

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í:

Proyecto de composer recién creado

Proyecto de composer recién creado

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.

Relacionado:  Cargar nuestras propias clases con Composer

Si en el futuro se agregan más librerías, serán cargadas de manera automática.

Actualizar librerías

Si crees que es hora de actualizar tus librerías o estás obligado a hacerlo, hazlo con:

composer update

Instalar librerías con composer

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?

¿Cómo funciona composer a grandes rasgos?

No soy experto ni he mirado el código del gestor, pero así funciona:

  • Lee el archivo composer.json
  • Si no lo encuentra, indica error y termina
  • Instala las dependencias en la carpeta vendor. Por cada una descarga el código del repositorio oficial, y lo pone en tu vendor
  • Genera un archivo composer.lock que indica la última vez que instalaste o actualizaste librerías, así, en caso de error o de que algo falle, se vuelve a esa versión
  • Pone dentro del autoload el código que carga a otro autoload que a su vez requiere los paquetes

Eso fue a grandes rasgos, pero obviamente el gestor es muchísimo más que eso.

Cargar nuestro código

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.


Estoy disponible para trabajar en tu proyecto o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.
Si el post fue de tu agrado muestra tu apoyo compartiéndolo, suscribiéndote al blog, siguiéndome o realizando una donación.

Suscribir por correo

Ingresa tu correo y recibirás mis últimas entradas sobre programación, open source, bases de datos y todo lo relacionado con informática

Relacionado:  Introducción e instalación de gestor de dependencias en Go: dep

Únete a otros 567 suscriptores


parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

3 Comments

Crear archivo de Excel con PHP y PHPSpreadsheet - Parzibyte's blog · julio 4, 2019 a las 10:54 am

[…] más recomendable es usar composer (aquí hay un tutorial de su instalación, y aquí puedes ver por qué usar Composer o cómo adaptarlo a tu proyecto). No importa si ya tenemos un proyecto con composer o si es uno […]

Crear Google sitemap (Mapa del sitio) XML con PHP y Sitemap.php - Parzibyte's blog · mayo 21, 2019 a las 9:46 pm

[…] utilizas composer […]

Configurar, descargar e instalar composer (gestor de dependencias) - Parzibyte's blog · febrero 11, 2019 a las 1:28 pm

[…] eres nuevo en esto de Composer mira por qué deberías usarlo y sus primeros pasos. En caso de que tengas un proyecto pero quieras adaptarlo mira este […]

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

A %d blogueros les gusta esto: