¿Qué es Composer y qué puede hacer por ti?
Autor: Bruno Lorente
CEO de Novadevs
En desarrollo de software, sea en el lenguaje que sea, es habitual el uso de librerías, no importa si son tuyas, o de un tercero. El uso de librerías ayuda a que las aplicaciones tengan una mayor modularidad, mejorando su vida útil y añadiendo facilidades de mantenimiento.
Algunos de los proyectos PHP más importantes de hoy en día utilizan composer para gestionar sus “instalaciones y actualizaciones”, por ejemplo: PrestaShop, Drupal, Laravel y Symfony. Casi nada.
Dicho lo anterior, todos hemos sido novatos alguna vez. Sí, todos.
¿Alguna vez te has sentido tentado a crear un directorio third_party, vendor, o similar (en el mejor de los casos) para guardar ahí las librerías que necesitabas para tu proyecto?
Dado el auge del self learning y de las tecnologías web, me parece una idea genial dedicarle unas líneas a Composer, el gestor de dependencias para PHP.
1. ¿Qué es Composer?
Vayamos por partes, ¿qué es un gestor de dependencias o de paquetes? Bien, un gestor de dependencias, es un software que se encarga de evaluar la compatibilidad, de descargar, instalar, actualizar y desinstalar paquetes de software dentro de un proyecto. Hay muchos distintos, de muchas formas distintas, y de todos los colores. Algunos de los más famosos son gradle, pip, yarn, maven y composer, entre otros.
¿Y qué es composer? Pues como te puedes imaginar, un gestor de dependencias para php. Composer nos permitirá instalar librerías o paquetes de terceros, de una forma muy ordenada y mantenible dentro de nuestro proyecto web.
2. Cómo instalar Composer
¿Cómo hacemos para instalar Composer? Muy sencillo, sigue los tres pasos (literalmente tres pasos) detallados en https://getcomposer.org/doc/00-intro.md
Para comenzar a utilizar composer en un proyecto web cualquiera, simplemente tenemos que crear un archivo llamado composer.json dentro del proyecto, en la raíz, con al menos, el siguiente código (que menos que darle nombre a nuestro proyecto:
{ "name": "novadevs/composer" }
Un ejemplo. Un cliente necesita una interfaz para su comercio electrónico que le permita generar códigos de barras personalizados a sus clientes, ¿Cuál será el primer paso? Instalar una librería que nos ayude a generar código de barras. Gracias a Composer, tendremos la librería lista para usar con un solo comando como el siguiente:
composer require picqer/php-barcode-generator
El comando anterior añadirá la dependencia al archivo, composer.json de nuestro proyecto, con un código similar al siguiente:
{ "name": "novadevs/composer", "require": { "picqer/php-barcode-generator": "^2.1" } }
Si te fijas, básicamente lo que composer ha escrito en el archivo es: «El proyecto «novadevs/composer» tiene como dependencia, el paquete o librería picqer/php-barcode-generator en la versión 2.1 o superior e inferior a la versión 2.2 de forma semántica. Si quieres saber más sobre los operadores que utiliza composer puedes visitar https://getcomposer.org/doc/articles/versions.md#exact-version-constraint y sobre versionado semántico puedes visitar https://semver.org/lang/es/
Todo ok, pero… ¿Dónde guarda e instala las dependencias? Composer creará una directorio llamado «vendor» y bajo ese directorio, instalará las librerías.
¿Y de dónde se descarga el software? Existen muchas opciones y una de ellas la encontramos en Packagist. En próximas publicaciones hablaremos más sobre este tipo de repositorios los cuales resultan de gran utilidad para el usuario.
3. ¿Todavía quieres conocer más ventajas de usar composer en tus proyectos?
Pues bien, aquí vemos 2 aspectos fundamentales:
- Los despliegues se vuelven más ágiles. A la hora de instalar tu proyecto en cualquier servidor bastará con copiar ese archivo, instalar Composer en la máquina e instalar «composer install»
- Facilita el control de versiones y el trabajo colaborativo.
¿Formas parte de un equipo? Ya no importa que cada uno tenga una versión de las dependencias del proyecto. Con un control de versiones sencillo que os permita compartir el archivo composer.json todos podréis usar la misma versión de todo, y además lo podréis comprobar de forma rápida y sencilla.
Aquí te dejo algunas cosas guays que se pueden hacer con Composer y que iremos ampliando en futuras publicaciones:
- Añadir dependencias que únicamente se instalarán en entornos de desarrollo, por ejemplo, un estilizador de código, una librería para gestionar test automáticos, etc.
- Añadir alias de comandos.
- Añadir scripts de post-instalación, dicho de otra manera, ejecutar programas o comandos automáticamente después de instalar un paquete/librería.
- Añadir scripts de post-actualización, para ejecutar programas o comandos automáticamente después de actualizar un paquete/librería.
Y para terminar, un pequeño tip: Si utilizas un control de versiones tipo git, omite el directorio “vendor”, tus despliegues y las descargas del proyecto serán mucho más rápidas.
Más publicaciones…
Core Web Vitals, ¿va a verse comprometido tu posicionamiento en 2021?
Autor: Bruno LorenteCEO de NovadevsEn 2020 Google anunció que la experiencia de usuario iba a ser un factor clave para el posicionamiento en el ranking de los resultados de búsqueda de Google y ahora esto es una realidad que entra en vigor a partir de este mayo 2021...
Up selling y Cross selling: cómo aumentar las ventas online
Autor: Óscar Olivares Desarrollo Comercial y VentasSi alguna vez has trabajado en ventas, sabrás por propia experiencia la diferencia que existe entre vender a un cliente activo y captar a un nuevo cliente. Pero lo que tal vez no sepas es que dependiendo del sector en...
7 estrategias para incrementar tus ventas online
Autor: Óscar Olivares Desarrollo Comercial y VentasSi existe una necesidad común en cualquier empresa, es la de vender más. Y para ello lo principal es atraer al máximo número posible de potenciales clientes. Para ayudarte en esa labor quiero compartir contigo las 7...