Programación Avanzada PHP – Introducción a Composer

Composer es un gestor de dependencias para PHP. En palabras simples nos va a permitir:

  • Instalar librerías externas (como frameworks, bibliotecas o paquetes de otros desarrolladores).
  • Administrar sus versiones (evitando conflictos entre proyectos).
  • Autocargar clases automáticamente (sin necesidad de usar require manualmente).

Si lo llevamos a sistemas operativos, digamos que tener un gestor de paquetes como apt o dnf pero pensando en el mundo de php :).

¿Para qué se usa?

  1. Instalar frameworks como Laravel, Symfony, etc.
  2. Usar librerías populares (por ejemplo, PHPUnit para pruebas o Guzzle para HTTP).
  3. Evitar reinventar la rueda: Si alguien ya resolvió un problema (como enviar emails o conectar a una API), podemos usar su paquete.

Ejemplo práctico: Usar Composer

1. Instalación

Descarga Composer desde getcomposer.org o ejecuta en terminal:

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php
php -r "unlink('composer-setup.php');"

2. Crear un proyecto y usar paquetes

Crea un archivo composer.json (manualmente o con el comando):

composer init

Ejemplo de composer.json para instalar Guzzle (cliente HTTP):

{
    "require": {
        "guzzlehttp/guzzle": "^7.0"
    }
}

Instala las dependencias:

composer install

Esto descargará Guuzzle en la carpeta vendor/.

3. Usar el paquete en tu código PHP

Crea un archivo index.php:

<?php
require 'vendor/autoload.php'; // Autocarga de Composer

use GuzzleHttp\Client;

$client = new Client();
$response = $client->get('https://api.github.com/users/octocat');
echo $response->getBody();

Al incluir vendor/autoload.php, Composer se encarga de cargar automáticamente las clases necesarias.

Comandos útiles

composer require [paquete]: Añade una dependencia (ej: composer require monolog/monolog).
composer update: Actualiza los paquetes según composer.json.
composer dump-autoload: Regenera el autocargador si añades clases manualmente.

¿Por qué es importante?

  • Organización: Evita incluir código externo manualmente.
  • Control de versiones: Puedes especificar versiones exactas (ej: "^7.0" significa «7.x pero no 8.0»).
  • Ecosistema PHP: Casi todos los proyectos modernos de PHP usan Composer.

Ejemplo real: Laravel usa Composer para instalar sus componentes y extensions como Laravel Debugbar.

Deja un comentario

I’m Luis E. Fagúndez

Bienvenidos a mi página web personal. Mi nombre es Luis, me gusta enseñar, programar y tomar litros y litros de café.

En esta web vas a encontrar materiales sobre educación, programación, Gnu/Linux, software libre y mucho más.

Esta web busca brindar información sobre las asignaturas que imparto en DGETP-UTU, así como proyectos personales y otras cosas.

Gracias por ser parte de esta hermosa comunidad.

Formas de contacto