Composer, gestor de dependencias para PHP

arrow_back Blog

Composer es el gestor de dependencias para PHP. Sirve para descargar y gestionar las librerías y dependencias de un proyecto PHP de manera automatizada.

Cuando se desarrolla una aplicación o sitio web en PHP, a menudo se utilizan diferentes librerías o frameworks de terceros para añadir funcionalidades adicionales. Composer permite gestionar estas dependencias de manera sencilla, descargándolas y manteniéndolas actualizadas de manera automática.

Para utilizar Composer, se crea un archivo llamado "composer.json" en el raíz del proyecto, en el que se especifican las dependencias necesarias y se ejecuta el comando "composer install" para descargar las dependencias y crear un archivo "vendor/autoload.php" que se puede incluir en el código de la aplicación para cargar automáticamente las dependencias.

Instalar Composer en cualquier sistema operativo

Instalar Composer en Ubuntu

Instalar Composer en Mac OS

Instalar Composer en Windows

Simplemente descarga y ejecuta el instalador, una vez lo tengas instalado en tu equipo podrás ejecutar el comando composer y todo estará funcionando.

Empezando un nuevo proyecto con Composer

Para crear un nuevo proyecto con Composer podemos seguir los siguientes pasos:

  1. Asegúrate de tener instalado Composer en tu equipo y de que puedas ejecutar el comando composer desde un terminal.

  2. Abre una terminal y navega hasta la carpeta donde quieres crear tu proyecto.

  3. Ejecuta el comando composer init para crear un archivo composer.json inicial:

  4. Sigue las instrucciones que aparecen en pantalla para configurar el nombre, la descripción, la licencia y otras opciones de tu proyecto.

  5. Una vez que hayas completado el proceso de inicialización, Composer creará un archivo composer.json en la carpeta actual con la configuración de tu proyecto. Este archivo define las dependencias de tu proyecto y cómo Composer debe manejarlas.

  6. Si necesitas instalar dependencias de terceros, puedes hacerlo ejecutando el comando composer require <package>, reemplaza <package> por el nombre del paquete que deseas instalar.

  7. Una vez que hayas instalado todas las dependencias que necesitas, estarás listo para empezar a desarrollar tu proyecto.

Administrar dependencias y tareas con Composer

Además de descargar y gestionar dependencias, Composer también puede ser utilizado para realizar tareas de administración de proyectos. Algunas de las cosas que se pueden hacer con Composer son:

  • Instalar y actualizar dependencias: Composer permite descargar y actualizar de manera sencilla las dependencias de un proyecto.

  • Gestionar versiones de dependencias: Composer permite especificar qué versiones de las dependencias se deben utilizar y se encarga de descargar las versiones correctas.

  • Automatizar tareas: Composer permite definir scripts que se ejecutan en diferentes puntos del ciclo de vida de un proyecto (por ejemplo, al instalar o actualizar dependencias). Esto permite automatizar tareas como la generación de documentación o el minificado de archivos.

  • Generar archivos de autocarga: Composer genera un archivo "vendor/autoload.php" que se puede incluir en el código de la aplicación para cargar automáticamente las dependencias. Esto permite evitar tener que incluir manualmente cada archivo de dependencia en el código de la aplicación.

Comandos más comunes en Composer

A continuación te muestro algunos de los comandos más comunes que se pueden utilizar con Composer:

  • composer init: Este comando se utiliza para crear un archivo "composer.json" en un proyecto vacío. Pide al usuario que proporcione información básica sobre el proyecto y crea un archivo "composer.json" con la información proporcionada.

  • composer install: Este comando se utiliza para instalar las dependencias de un proyecto. Lee el archivo "composer.json" y descarga las dependencias especificadas en el archivo, así como sus dependencias recursivas. También genera el archivo "vendor/autoload.php" que se puede incluir en el código de la aplicación para cargar automáticamente las dependencias.

  • composer require <package>: Este comando se utiliza para instalar una nueva dependencia en un proyecto. Añade la dependencia al archivo "composer.json" y la descarga.

  • composer update: Este comando se utiliza para actualizar las dependencias de un proyecto a sus versiones más recientes. Lee el archivo "composer.json" y descarga las últimas versiones disponibles de las dependencias especificadas en el archivo, así como sus dependencias recursivas.

  • composer remove <package>: Este comando se utiliza para eliminar una dependencia de un proyecto. Elimina la dependencia del archivo "composer.json" y elimina los archivos de la dependencia del directorio "vendor".

  • composer search <query>: Este comando busca paquetes en el repositorio central de Composer (Packagist) que coinciden con la consulta especificada.

Estos son algunos de los comandos más comunes que se pueden utilizar con Composer, pero hay muchos más disponibles.

Comandos avanzados en Composer

Además de los comandos básicos que mencioné anteriormente, Composer ofrece una serie de comandos avanzados que pueden ser útiles en ciertas circunstancias:

  • composer show: Este comando muestra información sobre las dependencias instaladas en un proyecto, incluyendo sus nombres, versiones y autores.

  • composer validate: Este comando valida el archivo "composer.json" para asegurar que está bien formado y que las dependencias especificadas son válidas.

  • composer why-not <package>: Este comando muestra por qué un paquete determinado no puede ser instalado en el proyecto actual, incluyendo cualquier conflicto de versiones o dependencias.

  • composer why <package>: Este comando muestra qué paquetes hacen que se instale el paquete dado.

  • composer self-update: Este comando actualiza la instalación de Composer a la última versión disponible.

  • composer outdated: Este comando muestra las dependencias de un proyecto que están desactualizadas y las versiones más recientes disponibles.

  • composer create-project: Este comando se utiliza para crear un proyecto a partir de un paquete Composer existente. Por ejemplo, se puede utilizar para instalar un framework como Laravel o Symfony.

  • composer global require <package>: Este comando instala una dependencia globalmente en el sistema, lo que permite utilizarla en cualquier proyecto sin tener que instalarla manualmente.

  • composer prohibits <package>: Este comando muestra qué paquetes impiden que se instale el paquete dado.

  • composer home <package>: Este comando muestra la página del repositorio del paquete dado, si no se ofrece, en un proyecto Laravel por ejemplo se abrirá la página del repositorio de Laravel Framework.

  • composer suggests: Este comando muestra sugerencias de paquetes para nuestro proyecto.

  • composer exec <binary>: Este comando ejecuta un script binario del directorio vendor/bin.

  • composer fund: Este comando muestra cómo ayudar a financiar el mantenimiento de las dependencias utilizadas.

  • composer licenses: Este comando muestra información acerca del tipo de licencias de las dependencias utilizadas.

  • composer status: Este comando muestra una lista de paquetes modificados localmente.

Scripts en Composer

Composer permite definir scripts que se ejecutan en diferentes puntos del ciclo de vida de un proyecto. Esto permite automatizar tareas que se deben realizar al instalar o actualizar las dependencias de un proyecto.

Para definir un script en Composer, se añade una sección "scripts" en el archivo "composer.json" y se especifica una clave y un valor. La clave es el nombre del evento en el que se ejecutará el script y el valor es el comando o script que se debe ejecutar.

A continuación te muestro lo que Laravel tiene configurado por defecto para sus proyectos en la sección "scripts":

A continuación, te adjunto los nombres de los eventos que composer ejecuta durante su ejecución:

Eventos de comando

  • pre-install-cmd: Este evento se ejecuta antes de instalar las dependencias de un proyecto.

  • post-install-cmd: Este evento se ejecuta después de instalar las dependencias de un proyecto.

  • pre-update-cmd: Este evento se ejecuta antes de actualizar las dependencias de un proyecto.

  • post-update-cmd: Este evento se ejecuta después de actualizar las dependencias de un proyecto.

  • pre-status-cmd: Este evento se ejecuta antes de mostrar el estado de un proyecto (con el comando "composer status").

  • post-status-cmd: Este evento se ejecuta después de mostrar el estado de un proyecto.

  • post-create-project-cmd: Este evento se ejecuta después de crear un proyecto con Composer (con el comando "composer create-project").

  • pre-archive-cmd: Este evento se ejecuta antes de crear un archivo ZIP de un proyecto (con el comando "composer archive").

  • post-archive-cmd: Este evento se ejecuta después de crear un archivo ZIP de un proyecto.

  • pre-autoload-dump: Este evento se ejecuta antes de que Composer genere el archivo de autocarga.

  • post-autoload-dump: Este evento se ejecuta después de que Composer haya generado el archivo autoload.

  • post-root-package-install: Este evento se ejecuta después de que se haya instalado el paquete raíz durante el comando create-project (pero antes de que se instalen sus dependencias).

  • post-create-project-cmd: Este evento se ejecuta después de que se haya ejecutado el comando create-project.

Eventos de dependencias <packages>

  • pre-package-install: Este evento se ejecuta antes de que se instale un paquete.

  • post-package-install: Este evento se ejecuta después de que se haya instalado un paquete.

  • pre-package-update: Este evento se ejecuta antes de que se actualice un paquete.

  • post-package-update: Este evento se ejecuta después de que se ha actualizado un paquete.

  • pre-package-uninstall: Este evento se ejecuta antes de que se desinstale un paquete.

  • post-package-uninstall: Este evento se ejecuta después de que se ha desinstalado un paquete.

Scripts personalizados en Composer

Además de estos scripts predefinidos, también es posible definir scripts personalizados y ejecutarlos mediante el comando "composer run-script". Por ejemplo, podríamos definir un script llamado "test" y ejecutarlo con el comando "composer run-script test".

Ejemplo de un archivo "composer.json" con scripts:

En este ejemplo hemos definido cinco scripts: "pre-install-cmd", "post-install-cmd", "pre-update-cmd", "post-update-cmd" y "custom-script". Los cuatro primeros se ejecutarán automáticamente cuando se invoquen los comandos "composer install" o "composer update", mientras que el último se ejecutará mediante el comando "composer run-script custom-script" ya que es un script personalizado.


Hasta aquí esta entrada acerca de Composer, espero que te haya ayudado a entender cómo funciona Composer, es una herramienta imprescindible para cualquier desarrollador PHP.

Cursosdesarrolloweb Cursosdesarrolloweb

Cursosdesarrolloweb es una plataforma educativa con cursos y tutoriales en texto y vídeo.

Términos y condiciones Política de privacidad Formulario de contacto

Copyright 2024 © Todos los derechos reservados.

Contacto