Blog
Lo que cualquier desarrollador Backend en Magento debería conocer de base
- enero 19, 2024
- Publicado por: admin
- Categoría: Magento 2
Composer
¿Que es Composer y porque deberíamos saber de esta tecnología digital?, pues bien es una más dentro de la pila de tecnologías de Magento y conocer de ella como trabaja y sobre todo cuál es su finalidad, que nos hace mejor la vida y no solo en la plataforma de Magento, sino en muchas otras tecnologías, muchos han escuchado hablar de la tecnología e incluso se encuentran con archivos JSON llamados composer.json dentro de su proyecto, pero la realidad es quela gran mayoría, pasa por alto esto porque pensamos que las cosas funcionan bien y correctamente sin composer, pero la realidad es otra si conociéramos realmente la capacidad de composer a partir de ya mismo empezaríamos a ponerle más atención porque es de mucha utilidad.
Composer no es una herramienta que administre la gestión de Paquetes o programas, para los que conocemos de Linux sabemos que existe YUM o APT que con un par de líneas de comando podemos tener instalado en nuestro sistema un montón de programas de software listo para usar, así como para Windows existe el famoso Windows Package Manager, que de igual forma gráfica te muestra un listado de una cantidad de aplicaciones que puedes instalar en tu computadora, pero hablando de Composer puedo decir que esta tecnología no tiene que ver a ese nivel, ya que Composer solo trabaja a nivel de proyecto y no a nivel de todo el sistema operativo simplemente es una herramienta que a través de un simple archivo JSON le indica a tu proyecto que librerías o tecnologías debería utilizar, se conecta a los repositorios y te los descarga solo en ese proyecto en donde está el archivo JSON muchas veces en un PATH llamado vendor, así que si lo miras desde ese punto es muy elegante, como una herramienta como esa nos podría ir bien a nosotros los desarrolladores.
Ahora bien, para lo cual lo primero es instalar, Composer y eso se hace de una forma muy sencilla, tan solo con ejecutar una línea de comandos desde un sistema Linux o bien desde un sistema Windows bajar un ejecutable .exe que se encuentra en la página oficial de Composer, así que más fácil no podría ser:
# Instalar estos paquetes en ubuntu
sudo apt install curl php-cli php-mbstring git unzip
# Comando para descargar el paquete e instalar composer en nuestro sistema Linux
curl -sS https://getcomposer.org//installer -o composer-setup.php
Ya una vez ejecutados los comandos se podrá mediante el siguiente comando verificar si Composer se ha instalado correctamente:
composer
Comando | Descripción |
---|---|
about | Muestra la información breve sobre Composer. |
archive | Crea un archivo de este paquete composer.. |
browse | Abre la URL del repositorio del paquete o la página de inicio en su navegador. |
cc | Borra el caché de paquetes interno del compositor. |
check-platform-reqs | Comprobar que se cumplen los requisitos de la plataforma. |
clear-cache | Borra el caché de paquetes interno del compositor. |
clearcache | Borra el caché de paquetes interno del compositor. |
config | Establece las opciones de configuración. |
create-project | Crea un nuevo proyecto a partir de un paquete en el directorio dado. |
depends | Muestra qué paquetes hacen que se instale el paquete dado. |
diagnose | Diagnostica el sistema para identificar errores comunes. |
dump-autoload | Vuelca el cargador automático. |
dumpautoload | Vuelca el cargador automático. |
exec | Ejecuta un script/binario suministrado. |
fund | Descubre cómo ayudar a financiar el mantenimiento de tus dependencias. |
global | Permite ejecutar comandos en el directorio del compositor global ($COMPOSER_HOME). |
help | Muestra ayuda para un comando |
home | Abre la URL del repositorio del paquete o la página de inicio en su navegador. |
i | Instala las dependencias del proyecto desde el archivo composer.lock si está presente, o recurre al composer.json. |
info | Muestra información sobre los paquetes.. |
init | Crea un archivo composer.json básico en el directorio actual. |
install | Instala las dependencias del proyecto desde el archivo composer.lock si está presente, o recurre al composer.json. |
licenses | Muestra información sobre licencias de dependencias. |
list | Comandos de listas |
outdated | Muestra una lista de paquetes instalados que tienen actualizaciones disponibles, incluida su última versión. |
prohibits | Muestra qué paquetes impiden que se instale el paquete dado. |
remove | Elimina un paquete de require o require-dev. |
require | Agrega los paquetes requeridos a su composer.json y los instala. |
run | Ejecuta los scripts definidos en composer.json. |
run-script | Ejecuta los scripts definidos en composer.json. |
search | Búsquedas de paquetes. |
self-update | Actualiza composer.phar a la última versión. |
selfupdate | Actualiza composer.phar a la última versión. |
show | Muestra información sobre los paquetes. |
status | Muestra una lista de paquetes modificados localmente. |
suggests | Muestra sugerencias de paquetes. |
u | Actualiza tus dependencias a la última versión de acuerdo con composer.json y actualiza el archivo composer.lock. |
update | Actualiza tus dependencias a la última versión de acuerdo con composer.json y actualiza el archivo composer.lock. |
upgrade | Actualiza tus dependencias a la última versión de acuerdo con composer.json y actualiza el archivo composer.lock. |
validate | Valida un composer.json y composer.lock. |
why | Muestra qué paquetes hacen que se instale el paquete dado. |
why-not | Muestra qué paquetes impiden que se instale el paquete dado. |
La tabla anterior muestra los principales comandos que se puede utilizar con esta tecnología de Composer, lo que hay que entender de forma muy sencilla es que se debe crear un archivo JSON con extensión .json llamado Composer quedando de la siguiente forma, composer.json esto se colocaría en el directorio raíz de un proyecto y si la máquina o servidor tiene la herramienta instalada de Composer se podrán interpretar los comandos ejecutados directamente en el directorio donde se localice un archivo composer.json, vamos a ver un ejemplo de como mediante la consola se inicializa y crea un archivo de este tipo con una simple instrucción que posterior mediante completar una seria de preguntas como si de un Wizard se tratara:
Resumen
En resumen podemos comprender que la tecnología de Composer en concreto es realizar la creación de un archivo JSON con nombre composer.json que contienen una serie de atributos valor que están definidos por un esquema que se podría encontrar aquí https://getcomposer.org/schema.json dentro está el esquema completo cada unos de los parámetros que podemos agregar al archivo JSON, una vez creado este archivo en conjunto con la herramienta instalada en un servidor computador entorno local o donde quiera que tengamos nuestro proyecto la tarea será que estará a disposición y a la expectativa de los diferentes comandos de ejecución para que realice diferentes acciones, su punto principal es que podrá estructura librerías en un proyecto para poder conectarse a esos repositorios bajarlas descargarlas y controlar sus rutas de instalación y configuración, un objetivo también a mencionar es que los proyectos podrían ser mucho más ligeros, ya que no se requeriría de transportar el proyecto a otra instancia junto con todas sus librerías y dependencias, bastaría solo con el archivo JSON bien definido para conocer que librerías se deberían instalar en un proyecto montado en otras instancias e incluso en entornos locales de desarrollo.