Tutorial #5: Instalaci贸n de Composer - Gestor de Dependencias para PHP

 

Tutorial #5: Instalaci贸n de Composer - Gestor de Dependencias para PHP

馃幆 Introducci贸n

¡Bienvenido de nuevo! En esta lecci贸n, vamos a instalar Composer, el gestor de dependencias para PHP.

Composer nos permite instalar bibliotecas PHP de manera sencilla, como:

  • 馃攼 Autenticaci贸n y seguridad

  • 馃摟 Env铆o de emails

  • 馃梽️ Manejo de bases de datos

  • 馃寪 APIs y servicios web

  • 馃搳 Procesamiento de datos


馃摝 ¿Qu茅 es Composer?

Composer es un gestor de dependencias para PHP. Funciona como npm para Node.js o pip para Python.

¿Para qu茅 sirve?

Funci贸nEjemplo
馃摜 Instalar bibliotecascomposer require monolog/monolog
馃攧 Actualizar dependenciascomposer update
馃搵 Gestionar versionesControl de versiones exactas
馃敆 AutoloadingCarga autom谩tica de clases

Archivos Principales

text
馃搫 composer.json     ← Define las dependencias del proyecto
馃搫 composer.lock     ← Versiones exactas instaladas
馃搧 vendor/           ← C贸digo de las dependencias
馃搫 autoload.php      ← Carga autom谩tica de clases

馃攳 Paso 1: Verificar si Composer ya est谩 Instalado

1.1 Abrir la Terminal

Windows 馃獰

  • Presiona Windows + R

  • Escribe cmd y presiona Enter

  • O usa PowerShell

macOS 馃崕

  • Abre Terminal desde Launchpad

  • O presiona Cmd + Espacio y escribe "Terminal"

Linux 馃惂

  • Presiona Ctrl + Alt + T

  • O busca "Terminal" en el men煤

1.2 Verificar Composer

bash
composer --version

Si ves algo como:

text
Composer version 2.5.5 2023-03-21 10:10:15

¡Ya tienes Composer instalado! Puedes saltar al Paso 5.

Si ves:

text
command not found

No est谩 instalado. Contin煤a con el Paso 2.


馃摜 Paso 2: Instalar PHP CLI

Composer necesita PHP para ejecutarse desde la l铆nea de comandos.

2.1 Verificar PHP CLI

bash
php --version

Si ves la versi贸n de PHP:

text
PHP 8.2.12 (cli) (built: Oct 26 2023 16:22:00)

PHP CLI est谩 instalado.

2.2 Instalar PHP CLI (si no est谩)

Linux (Ubuntu/Debian) 馃惂

bash
sudo apt-get update
sudo apt-get install php-cli php-mbstring php-xml php-curl php-zip

Linux (Fedora/CentOS) 馃惂

bash
sudo dnf install php-cli php-mbstring php-xml php-curl php-zip

macOS 馃崕

bash
# Con Homebrew
brew install php

Windows 馃獰

  • XAMPP ya incluye PHP CLI

  • Solo aseg煤rate de que est茅 en el PATH

2.3 Verificar PHP CLI nuevamente

bash
php --version

⬇️ Paso 3: Instalar Composer

Opci贸n 1: Windows 馃獰 (M脕S F脕CIL)

Descargar el Instalador

  1. Ve a: https://getcomposer.org/download/

  2. Haz clic en "Composer-Setup.exe"

https://getcomposer.org/img/logo-composer-transparent.png

Ejecutar el Instalador

  1. Ejecuta el archivo descargado

  2. Sigue el asistente:

    text
    ✅ Seleccionar: "Install for all users"
    ✅ Opci贸n: "Add to PATH"
    ✅ PHP Path: C:\xampp\php\php.exe (o tu ruta de PHP)
  3. Haz clic en "Install"

  4. Espera a que termine

Verificar Instalaci贸n

cmd
composer --version

Opci贸n 2: Linux/macOS (M茅todo Manual)

Paso 2.1: Descargar el Instalador

bash
# Ir al directorio de usuario
cd ~

# Descargar el instalador
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"

# Verificar la integridad del archivo
php -r "if (hash_file('sha384', 'composer-setup.php') === 'dac665fdc30fdd8ec78b38b9800061b4150413ff2e3b6f88543c636f7cd84f6db9189d43a81e5503cda447da73c7e5b6') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

Debes ver:

text
Installer verified

Paso 2.2: Instalar Composer Localmente

bash
# Instalar en el directorio actual
php composer-setup.php

# Verificar que funciona
php composer.phar --version

Paso 2.3: Instalar Globalmente (Linux/macOS)

bash
# Mover a una ubicaci贸n global
sudo mv composer.phar /usr/local/bin/composer

# Dar permisos de ejecuci贸n
sudo chmod +x /usr/local/bin/composer

# Verificar
composer --version

Opci贸n 3: Linux (M茅todo APT - M脕S F脕CIL)

Ubuntu/Debian

bash
# Actualizar paquetes
sudo apt-get update

# Instalar Composer
sudo apt-get install composer

# Verificar
composer --version

Fedora

bash
# Instalar Composer
sudo dnf install composer

# Verificar
composer --version

馃崕 Paso 4: Soluci贸n para macOS

Problema: "El directorio /usr/local/bin no existe"

En algunas versiones de macOS, el directorio /usr/local/bin no existe por defecto.

Soluci贸n:

bash
# Crear el directorio
sudo mkdir -p /usr/local/bin

# Ahora mover composer
sudo mv composer.phar /usr/local/bin/composer

# Dar permisos
sudo chmod +x /usr/local/bin/composer

M茅todo Alternativo (Homebrew)

bash
# Instalar con Homebrew
brew install composer

# Verificar
composer --version

✅ Paso 5: Verificar la Instalaci贸n Global

5.1 Probar Composer

bash
composer

Deber铆as ver:

text
   ______
  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/
Composer version 2.5.5 2023-03-21 10:10:15

Usage:
  command [options] [arguments]

Options:
  -h, --help                     Display help message
  -q, --quiet                    Do not output any message
  -V, --version                  Display this application version
      --ansi                     Force ANSI output
      --no-ansi                  Disable ANSI output
  -n, --no-interaction           Do not ask any interactive question
      --profile                  Display timing and memory usage information
      --no-plugins               Whether to disable plugins.
      --no-scripts               Skips the execution of all scripts defined in composer.json
  -d, --working-dir=WORKING-DIR  If specified, use the given directory as working directory.
      --no-cache                 Prevent use of the cache
  -v|vv|vvv, --verbose           Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug

Available commands:
  about                Shows a short information about Composer.
  archive              Creates an archive of this composer package.
  browse               Opens the package's repository URL or homepage in your browser.
  ...

✅ ¡Composer est谩 funcionando correctamente!

5.2 Probar Composer con un Proyecto

bash
# Crear un proyecto de prueba
mkdir test-composer
cd test-composer

# Inicializar Composer
composer init --quiet --no-interaction

# Instalar una dependencia (ejemplo)
composer require monolog/monolog

# Ver archivos creados
ls -la

Resultado esperado:

text
composer.json
composer.lock
vendor/

馃摑 Paso 6: Composer en Nuestro Proyecto

6.1 Crear composer.json

En la ra铆z de nuestro proyecto vchat/:

json
{
    "name": "aizaz/video-chat",
    "description": "Aplicaci贸n de video chat con PHP y WebRTC",
    "type": "project",
    "license": "MIT",
    "require": {
        "php": ">=7.4",
        "ext-pdo": "*",
        "ext-json": "*",
        "ext-mbstring": "*"
    },
    "require-dev": {
        "monolog/monolog": "^3.0"
    },
    "autoload": {
        "psr-4": {
            "App\\": "core/"
        },
        "classmap": [
            "core/classes/"
        ]
    },
    "scripts": {
        "post-install-cmd": [
            "echo '¡Instalaci贸n completada!'"
        ]
    }
}

6.2 Instalar Dependencias

bash
cd C:\xampp\htdocs\vchat
composer install

6.3 Usar Autoload

php
<?php
// includes/config.php
require_once __DIR__ . '/../vendor/autoload.php';

// Ahora puedes usar clases autom谩ticamente
use App\Classes\Database;
use Monolog\Logger;
use Monolog\Handler\StreamHandler;

// Ejemplo de uso
$log = new Logger('video-chat');
$log->pushHandler(new StreamHandler(__DIR__ . '/../logs/app.log', Logger::INFO));
$log->info('Aplicaci贸n iniciada');

馃洜️ Comandos 脷tiles de Composer

ComandoDescripci贸n
composer installInstala todas las dependencias
composer updateActualiza todas las dependencias
composer require [paquete]Instala un nuevo paquete
composer remove [paquete]Elimina un paquete
composer dump-autoloadRegenera el autoloader
composer showLista paquetes instalados
composer outdatedMuestra paquetes desactualizados
composer self-updateActualiza Composer mismo

馃搳 Comparaci贸n de M茅todos de Instalaci贸n

M茅todoVentajasDesventajas
Windows .exe✅ F谩cil, GUI❌ Solo Windows
Linux APT✅ F谩cil, integrado❌ Versi贸n puede ser antigua
Manual (global)✅ Control total❌ M谩s pasos
Homebrew (macOS)✅ F谩cil❌ Requiere Homebrew

⚠️ Soluci贸n de Problemas

Error: "Permission denied"

Linux/macOS:

bash
sudo chmod +x /usr/local/bin/composer

Error: "php: command not found"

Soluci贸n: Instalar PHP CLI

bash
# Ubuntu/Debian
sudo apt-get install php-cli

# CentOS/Fedora
sudo dnf install php-cli

Error: "SSL certificate problem"

Soluci贸n: Configurar certificados

bash
# Descargar certificados
wget https://curl.se/ca/cacert.pem -O /etc/ssl/certs/cacert.pem

# Configurar PHP
echo "curl.cainfo=/etc/ssl/certs/cacert.pem" >> /etc/php/8.2/cli/conf.d/99-custom.ini

Error en Windows: "No se reconoce 'composer'"

Soluci贸n: Agregar al PATH

text
1. Panel de Control → Sistema
2. Configuraci贸n avanzada → Variables de entorno
3. Editar PATH → Agregar: C:\Users\TuUsuario\AppData\Roaming\Composer\vendor\bin
4. Reiniciar terminal

馃幆 Verificaci贸n Final

Lista de Verificaci贸n

  • PHP CLI instalado (php --version)

  • Composer instalado (composer --version)

  • Composer accesible desde cualquier directorio

  • Archivo composer.json creado en el proyecto

  • Dependencias instaladas (composer install)

  • vendor/autoload.php existe

Comandos de Verificaci贸n

bash
# 1. Verificar PHP
php --version
# PHP 8.2.12

# 2. Verificar Composer
composer --version
# Composer version 2.5.5

# 3. Verificar en el proyecto
cd C:\xampp\htdocs\vchat
composer --version
# Debe funcionar en cualquier directorio

馃摎 Resumen

En esta lecci贸n hemos aprendido:

  1. Qu茅 es Composer y para qu茅 sirve

  2. C贸mo instalar PHP CLI (necesario para Composer)

  3. C贸mo instalar Composer en Windows, macOS y Linux

  4. C贸mo configurar Composer globalmente

  5. C贸mo usar Composer en nuestro proyecto


馃殌 Pr贸ximo Paso

Con Composer instalado, en la siguiente lecci贸n vamos a:

  • Instalar bibliotecas necesarias para el proyecto

  • Configurar el sistema de autenticaci贸n

  • Crear las clases PHP para manejar usuarios


¡Excelente trabajo! Composer est谩 listo para usar. 馃帀

Comentarios

Entradas m谩s populares de este blog

Tutorial Completo: Chat de Video en Vivo con PHP + WebRTC