Módulo 4: Fundamentos de PHP

Introducción a Composer

Lección 21 de 33 del Curso Roadmap Learning Laravel

Duración: 45 minutos
Nivel: Principiante (requiere conocimientos de HTML, CSS, JavaScript, y PHP básico: variables, formularios, POO, MySQL)
Objetivo: Comprender qué es Composer, instalarlo, y usar paquetes para añadir funcionalidades a proyectos PHP, como preparación para gestionar dependencias en Laravel.
Materiales necesarios:

  • Computadora con:
    • PHP instalado (versión 7.4 o superior, incluido en XAMPP, WAMP, o MAMP).
    • Editor de texto (recomendado: VS Code, descarga gratuita desde code.visualstudio.com).
    • Acceso a internet para descargar Composer y paquetes.
    • Terminal (Command Prompt en Windows, Terminal en macOS/Linux, o integrada en VS Code).
  • Opcional: Servidor local (XAMPP) para probar scripts PHP.
  • Alternativa: Usa un entorno online como Repl.it (limitado para Composer) o una máquina virtual con PHP.
    Contexto: Composer es una herramienta clave en PHP moderno para gestionar dependencias, usada ampliamente en Laravel para instalar bibliotecas como Eloquent o paquetes de terceros.

¿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:
    1. Descarga el instalador desde getcomposer.org (Composer-Setup.exe).
    2. Ejecútalo y sigue los pasos (selecciona la ruta de php.exe, por ejemplo, C:\xampp\php\php.exe si usas XAMPP).
    3. Confirma la instalación abriendo una terminal y ejecutando:
      composer --version
      • Salida esperada: Composer version 2.x.x ....
  • macOS/Linux:
    1. Abre una terminal.
    2. 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
    3. 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:

  1. Abre una terminal (en VS Code: `Ctrl+`` o Terminal > New Terminal).
  2. Ejecuta composer --version.
  3. 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:

  1. Crea un proyecto:
    • Haz una carpeta (por ejemplo, mi_proyecto).
    • En la terminal, navega: cd mi_proyecto.
  2. 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).
  1. Instala un paquete:
    • Usa composer require nombre/paquete.
    • Ejemplo: Instalar un paquete de fechas.
  2. 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):

  1. Crea una carpeta proyecto_carbon.
  2. En la terminal, navega:
    cd proyecto_carbon
  3. Inicializa Composer:

    composer init --no-interaction
    • Crea composer.json con valores por defecto.

  4. Instala Carbon:
    composer require nesbot/carbon
    • Descarga Carbon y genera la carpeta vendor.

  5. 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>
  1. 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.

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:

  1. Crea un proyecto PHP vacío y configura Composer en él.
  2. 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.
  3. 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.
  4. 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>
  1. 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": {}
        }
    • 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).

Evaluación de Conocimientos: Fundamentos de Composer

¡Es hora de poner a prueba tus conocimientos sobre Composer! Este examen consta de 10 preguntas con opciones múltiples que cubren temas clave como la instalación de Composer, el uso de paquetes y la gestión de dependencias en proyectos PHP. Contesta con atención y demuestra tu comprensión de cómo Composer puede mejorar tu desarrollo web. ¡Buena suerte!

1. ¿Qué es Composer en el contexto de PHP?

2. En el ejemplo de la lección, ¿qué paquete se instaló para formatear fechas?

3. ¿Qué comando inicializa un proyecto con Composer?

4. ¿Qué archivo define las dependencias de un proyecto Composer?

5. En la tarea, ¿qué carpeta se genera automáticamente al configurar Composer?

6. ¿Qué comando instala un paquete específico con Composer?

7. ¿Qué archivo debes incluir en tu script PHP para usar paquetes de Composer?

8. ¿Qué sitio web es el repositorio principal de paquetes para Composer?

9. En el ejemplo, ¿qué clase se usó para obtener la fecha actual con Carbon?

10. ¿Qué comando verifica la versión de Composer instalada?

© Copyright Cursos Laravel :: 2025 Términos y condiciones