Composer para PHP: guía completa con ejemplos

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

¿Qué es Composer y para qué sirve?

\n\n

Composer es un gestor de dependencias para el lenguaje de programación PHP. Si has trabajado con npm para JavaScript o pip para Python, el principio de funcionamiento de Composer te resultará familiar. Permite declarar las bibliotecas de las que depende tu proyecto y gestionar automáticamente su instalación, actualización y eliminación.

\n\n

¿Para qué sirve Composer? En el desarrollo moderno con PHP rara vez se escribe todo desde cero. Normalmente se utilizan bibliotecas ya preparadas: para trabajar con bases de datos (Doctrine, Eloquent), peticiones HTTP (Guzzle), motores de plantillas (Twig), registro de logs (Monolog), etc. Antes, los desarrolladores descargaban archivos ZIP, copiaban manualmente los archivos y los incluían mediante require. Esto era incómodo, difícil de mantener las versiones y actualizar las dependencias. Composer resuelve todos estos problemas:

\n\n
    \n
  • Carga automática (autoloading): Composer genera un archivo de autocarga que incluye automáticamente todas las clases necesarias. No necesitas escribir decenas de require_once.
  • \n
  • Gestión de versiones: Especificas las versiones exactas de las bibliotecas (o rangos), y Composer se asegura de que no entren en conflicto entre sí.
  • \n
  • Repositorio centralizado: Todas las bibliotecas se almacenan en Packagist.org — el repositorio oficial de Composer.
  • \n
  • Reproducibilidad: El archivo composer.lock fija las versiones exactas de todos los paquetes instalados, lo que garantiza el mismo entorno en todas las máquinas (desarrollo, pruebas, producción).
  • \n
\n\n

Instalación de Composer

\n\n

Instalación en Linux / macOS

\n

La forma más sencilla es usar el script de instalación oficial. Abre la terminal y ejecuta:

\n
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"\nphp -r "if (hash_file('sha384', 'composer-setup.php') === 'dac665fdc30fdd8ec78b38b9800061b4150413ff2e3b6f88543c636f7cd84f6db9189d43a81e5503cda447da73c7e5b6') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"\nphp composer-setup.php\nphp -r "unlink('composer-setup.php');"
\n

Después de esto, obtendrás el archivo composer.phar. Para hacer que el comando composer sea global, muévelo:

\n
sudo mv composer.phar /usr/local/bin/composer
\n\n

Instalación en Windows

\n

Descarga y ejecuta el instalador desde el sitio oficial. Él mismo añadirá Composer a la variable de entorno PATH del sistema.

\n\n

Verificación de la instalación

\n

Después de la instalación, ejecuta en la terminal:

\n
composer --version
\n

Deberías ver algo como: Composer version 2.7.1 2024-03-11 16:15:07.

\n\n

Inicio rápido con un ejemplo de código

\n\n

Vamos a crear un nuevo proyecto e instalar una biblioteca para trabajar con fechas — nesbot/carbon.

\n\n
    \n
  1. Crea un directorio para el proyecto:\n
    mkdir my_project\ncd my_project
    \n
  2. \n
  3. Inicializa Composer:\n
    composer init
    \n

    Te pedirá que ingreses el nombre del proyecto, descripción, autor, etc. Puedes simplemente presionar Enter, aceptando los valores por defecto. Al final, se creará el archivo composer.json.

    \n
  4. \n
  5. Instala la biblioteca Carbon:\n
    composer require nesbot/carbon
    \n

    Composer descargará la biblioteca y todas sus dependencias en la carpeta vendor/, además creará el archivo composer.lock y actualizará composer.json.

    \n
  6. \n
  7. Crea el archivo index.php:\n
    <?php\nrequire_once __DIR__ . '/vendor/autoload.php';\n\nuse Carbon\\Carbon;\n\necho                    

Recommendations