¿Qué es Composer? (10 minutos)
Explicación:
Composer es un gestor de dependencias para PHP que permite instalar, actualizar, y gestionar bibliotecas (paquetes) de forma automática, simplificando el desarrollo.
Conceptos clave:
- Dependencias: Bibliotecas o paquetes que tu proyecto necesita (por ejemplo, un formateador de fechas).
- Paquetes: Código reusable disponible en Packagist (packagist.org), el repositorio principal de Composer.
- composer.json: Archivo que define las dependencias y configuración del proyecto.
- composer install: Comando que descarga e instala las dependencias.
- Autoloading: Composer genera un archivo (vendor/autoload.php) que carga automáticamente las clases de los paquetes.
Ventajas:
- Evita descargar manualmente bibliotecas.
- Gestiona versiones y compatibilidades.
- Facilita la colaboración en equipo.
Por qué es importante:
- En Laravel, Composer instala el framework y sus dependencias (como illuminate/database) y permite añadir paquetes personalizados.
Ejemplo conceptual:
- Sin Composer: Descargas un archivo ZIP de una biblioteca, lo descomprimes, e incluyes manualmente con require.
- Con Composer: Ejecutas composer require paquete y usas las clases directamente.
Punto clave: Composer es la herramienta estándar para gestionar dependencias en PHP moderno, esencial para proyectos escalables.
Actividad rápida (2 minutos):
Piensa en una funcionalidad que podrías necesitar (por ejemplo, enviar correos). Escribe en papel cómo crees que Composer ayudaría. Ejemplo:
- Descarga un paquete de email con un solo comando.
Instalación de Composer (10 minutos)
Explicación:
Instalar Composer es el primer paso para usarlo. Está disponible para Windows, macOS, y Linux.
Instrucciones de instalación:
- Windows:
- Descarga el instalador desde getcomposer.org (Composer-Setup.exe).
- Ejecútalo y sigue los pasos (selecciona la ruta de php.exe, por ejemplo, C:\xampp\php\php.exe si usas XAMPP).
- Confirma la instalación abriendo una terminal y ejecutando:
composer --version
- Salida esperada: Composer version 2.x.x ....
- macOS/Linux:
- Abre una terminal.
- Ejecuta:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" php composer-setup.php php -r "unlink('composer-setup.php');" sudo mv composer.phar /usr/local/bin/composer
- Verifica:
composer --version
- Alternativa: Usa Composer en entornos como Repl.it (si está preinstalado) o un contenedor Docker.
Configuración básica:
- Asegúrate de que PHP esté en el PATH del sistema (en XAMPP, suele estar configurado).
- Actualiza Composer si es necesario:
composer self-update
Cómo probarlo:
- Abre una terminal (en VS Code: `Ctrl+`` o Terminal > New Terminal).
- Ejecuta composer --version.
- Si ves la versión, Composer está instalado. Si no, revisa la instalación o el PATH.
Punto clave: Instalar Composer es un paso único que habilita la gestión de paquetes en cualquier proyecto PHP.
Actividad rápida (3 minutos):
Abre una terminal y escribe el comando para verificar la versión de Composer. Anota en papel la salida esperada. Solución sugerida:
- Comando: composer --version.
- Salida: Composer version 2.x.x ....
Uso de paquetes con Composer (15 minutos)
Explicación:
Una vez instalado, Composer permite añadir paquetes a un proyecto mediante comandos simples.
Flujo básico:
- Crea un proyecto:
- Haz una carpeta (por ejemplo, mi_proyecto).
- En la terminal, navega: cd mi_proyecto.
- Inicializa Composer:
composer init
- Genera un archivo composer.json.
- Acepta los valores por defecto o define el nombre del proyecto (por ejemplo, mi_usuario/mi_proyecto).
- Instala un paquete:
- Usa composer require nombre/paquete.
- Ejemplo: Instalar un paquete de fechas.
- Usa el paquete:
- Incluye vendor/autoload.php en tu script PHP.
- Usa las clases del paquete.
Ejemplo práctico (como pide la lección):
Instalar un paquete simple como Carbon (un formateador de fechas potente y fácil):
- Crea una carpeta proyecto_carbon.
- En la terminal, navega:
cd proyecto_carbon
-
Inicializa Composer:
composer init --no-interaction
-
Crea composer.json con valores por defecto.
-
- Instala Carbon:
composer require nesbot/carbon
-
Descarga Carbon y genera la carpeta vendor.
-
- Crea un script PHP:
<!DOCTYPE html>
<html lang="es">
<head>
<title>Formatear Fecha con Carbon</title>
<style>
body {
font-family: Arial, sans-serif;
max-width: 600px;
margin: 20px auto;
text-align: center;
}
h1 {
color: #2c3e50;
}
.fecha {
font-size: 1.2rem;
margin-top: 15px;
}
</style>
</head>
<body>
<h1>Formateador de Fechas</h1>
<?php
require 'vendor/autoload.php';
use Carbon\Carbon;
$hoy = Carbon::now();
echo "<p class='fecha'>Fecha actual: " . $hoy->toDateString() . "</p>";
echo "<p class='fecha'>Fecha formateada: " . $hoy->format('d/m/Y H:i') . "</p>";
echo "<p class='fecha'>Hace una semana: " . $hoy->subWeek()->toDateString() . "</p>";
?>
</body>
</html>
- Prueba el script:
- Con XAMPP:
- Mueve proyecto_carbon a htdocs (por ejemplo, C:\xampp\htdocs\proyecto_carbon).
- Accede: http://localhost/proyecto_carbon/index.php.
- Con terminal:
- Ejecuta un servidor PHP: php -S localhost:8000.
- Abre http://localhost:8000.
- Resultado esperado:
- Fecha actual: 2025-04-14
- Fecha formateada: 14/04/2025 12:34
- Hace una semana: 2025-04-07
- Nota: Las fechas varían según la ejecución.
- Con XAMPP:
Cómo funciona:
- composer require nesbot/carbon: Instala Carbon y actualiza composer.json.
- vendor/autoload.php: Carga automáticamente las clases de Carbon.
- Carbon::now(): Crea un objeto con la fecha actual.
- Métodos como toDateString(), format(), subWeek(): Formatean o manipulan fechas.
Estructura del proyecto:
proyecto_carbon/
├── composer.json
├── composer.lock
├── vendor/
│ ├── autoload.php
│ ├── nesbot/
│ └── ...
├── index.php
Punto clave: Composer simplifica el uso de paquetes como Carbon, una habilidad esencial para añadir funcionalidades en Laravel.
Actividad rápida (3 minutos):
Busca un paquete en Packagist (packagist.org) que te interese (por ejemplo, para enviar correos). Escribe en papel el comando para instalarlo. Solución sugerida:
- Paquete: phpmailer/phpmailer.
- Comando: composer require phpmailer/phpmailer.
Resumen y preparación para la tarea (10 minutos)
Resumen:
- Composer: Gestor de dependencias para PHP.
- Instalación: Descarga desde getcomposer.org o vía terminal.
- Uso: composer init, composer require, y vendor/autoload.php.
- Ejemplo: Instalamos Carbon para formatear fechas.
- Composer es la base para gestionar dependencias en Laravel, como paquetes de autenticación o bases de datos.
Preparación para la tarea:
La tarea pide configurar Composer en un proyecto PHP vacío.
- Estrategia:
- Crea una carpeta para el proyecto.
- Inicializa Composer con composer init.
- Verifica que composer.json y la carpeta vendor se generen.
- Crea un script PHP simple que use vendor/autoload.php (sin instalar paquetes adicionales).
- Lógica básica:
mkdir mi_proyecto cd mi_proyecto composer init --no-interaction
Punto clave: La tarea refuerza la configuración inicial de Composer, una habilidad fundamental para iniciar proyectos PHP modernos.
Tarea práctica: Configura Composer en un proyecto PHP vacío
Instrucciones:
- Crea un proyecto PHP vacío y configura Composer en él.
- Usa:
- Una carpeta nueva (por ejemplo, proyecto_composer).
- El comando composer init para generar composer.json.
- Un script PHP simple que incluya vendor/autoload.php y muestre un mensaje.
- HTML básico para la presentación.
- Asegúrate de:
- Verificar que composer.json y vendor/ existen.
- No instalar paquetes adicionales (enfócate en la configuración).
- Incluir estilos básicos con CSS.
- Usa el siguiente código como guía:
<!DOCTYPE html>
<html lang="es">
<head>
<title>Proyecto con Composer</title>
<style>
body {
font-family: Arial, sans-serif;
max-width: 600px;
margin: 20px auto;
text-align: center;
}
h1 {
color: #2c3e50;
}
p {
font-size: 1.2rem;
margin-top: 15px;
}
</style>
</head>
<body>
<h1>Mi Proyecto con Composer</h1>
<?php
require 'vendor/autoload.php';
echo "<p>¡Composer está configurado correctamente!</p>";
?>
</body>
</html>
- Pasos para completar:
- Crea una carpeta proyecto_composer.
- Abre una terminal y navega:
cd proyecto_composer
-
Inicializa Composer:
composer init --no-interaction
-
Esto genera composer.json y vendor/.
-
- Crea index.php con el código anterior.
- Prueba:
- Con XAMPP:
- Mueve proyecto_composer a htdocs.
- Accede: http://localhost/proyecto_composer/index.php.
- Con terminal:
- Ejecuta: php -S localhost:8000.
- Abre: http://localhost:8000.
- Resultado esperado:
- Página con título "Mi Proyecto con Composer".
- Mensaje: "¡Composer está configurado correctamente!".
- Verifica que composer.json contiene:
{ "name": "vendor/proyecto_composer", "description": "A simple project", "type": "project", "require": {} }
- Con XAMPP:
- Si hay errores, revisa la terminal o ejecuta composer diagnose.
Ejemplo de solución esperada:
El código anterior es funcional. En el navegador:
- Una página estilizada con un mensaje confirmando que Composer está configurado.
- En la carpeta: composer.json, composer.lock, vendor/, e index.php.
Tiempo estimado: 15-20 minutos (puedes hacerlo después de la lección).
Entregable: Carpeta proyecto_composer con composer.json, vendor/, e index.php funcional. Puedes compartir el contenido o describirlo para que lo revise.
Consejo: Usa composer --version antes de empezar para confirmar que Composer está instalado, y verifica que PHP esté accesible (php -v).