Contenido del curso
Cookies y sesiones
Manejo de excepciones
Trabajando con fechas
Modularización
- 16

Modularización de código en PHP con archivos
18:41 min - 17

Namespaces en PHP para evitar clases repetidas
16:15 min - 18

Autocarga de archivos con Composer y PSR-4
Viendo ahora - 19

Qué es un front controller en PHP
08:56 min - 20

URLs limpias con htaccess en PHP
17:28 min - 21

Traits en PHP: reutiliza métodos sin herencia
17:13 min
Cierre
Autocarga de archivos con Composer y PSR-4
Resumen
Si ya dominas la modularización y los namespaces en PHP, el siguiente paso natural es aprender a usar Composer con PSR-4 para autocargar archivos sin depender de require o include. Esta combinación es la forma profesional de organizar proyectos PHP y la base de frameworks como Laravel.
¿Qué es PSR-4 y por qué importa en PHP?
PSR son reglas que definen cómo deberíamos trabajar con PHP, creadas por la organización PHP-FIG, un grupo de programadores que estandariza el lenguaje [0:30].
La regla PSR-4 se enfoca en la autocarga de archivos. Lo que dice es simple: cada namespace debe coincidir con la ruta de la carpeta donde está guardado el archivo, y el nombre de la clase debe ser igual al nombre del archivo.
¿Qué es PSR-4 en PHP? Es un estándar que mapea namespaces a rutas de carpetas para que las clases se carguen automáticamente. El namespace refleja la ubicación del archivo y el nombre de la clase coincide con el del archivo.
¿Cómo se conecta Composer con PSR-4?
Composer usa PSR-4 para hacer carga automática de todos tus archivos definiendo únicamente namespaces [1:20]. Esto elimina la necesidad de escribir include, require o require_once en cada archivo.
¿Cómo configurar Composer paso a paso?
Para empezar, crea una carpeta de proyecto y ejecuta composer init en la terminal [2:00]. Composer te hará varias preguntas:
- Nombre del paquete (formato
autor/proyecto). - Descripción y autor.
- Minimum stability y tipo de paquete (en este caso,
project). - Licencia, por ejemplo MIT.
- Dependencias y dependencias de desarrollo.
- Configuración de PSR-4 mapping.
Al finalizar, se genera un archivo composer.json con la configuración del proyecto [3:30].
¿Cómo definir el autoload PSR-4 manualmente?
Dentro de composer.json agregas la sección de autocarga así:
{ "autoload": { "psr-4": { "App\": "App/" } } }
Esto le dice a Composer que cualquier namespace que empiece con App corresponde a la carpeta App/ del proyecto [4:30]. La estructura típica dentro de App incluye subcarpetas como classes y logic para separar la lógica.
¿Cómo aplicar las reglas PSR-4 en tus clases?
PSR-4 establece dos condiciones que debes respetar siempre. Si las rompes, Composer no podrá cargar tus archivos.
- La clase debe llamarse igual que el archivo. Si tu archivo es
MichisAdoptados.php, la clase debe serMichisAdoptados. - El namespace debe coincidir con la ruta de carpetas. Si el archivo vive en
App/classes/, el namespace esApp\classes.
Un ejemplo concreto en una clase ubicada en App/classes/Michi.php:
php
<?php namespace App\classes; class Michi { // getters y método sayMiaw } > **¿Qué pasa si no sigo el estándar PSR-4?** Composer no detectará tu archivo y obtendrás errores de clase no encontrada. Aunque la sintaxis de PHP sea válida, el autoloader fallará al buscar la ruta. ### ¿Cómo importar clases con use sin require? Dentro de un archivo nuevo, por ejemplo `App/logic/CreateMichis.php`, puedes usar las clases con `use` directamente: php <?php use App\classes\Michi; use App\classes\MichisAdoptados; function createMichis() { $mr_michi = new Michi('Mr. Michi', 'blanquito', 16); $mr_michi_adopted = new MichisAdoptados('Mr. Michi', new DateTime('2022-04-16'), 'Retaxito'); echo $mr_michi->sayMiaw() . " Me adoptó " . $mr_michi_adopted->getAdoptedBy(); } No hay un solo `require` en este archivo y aun así las clases funcionan [9:00]. ## ¿Cómo generar el autoload y ejecutar tu proyecto? Antes de usar la autocarga, ejecuta en la terminal: bash composer du Esto genera la carpeta `vendor` con el archivo `autoload.php` [10:30]. En tu archivo principal `index.php`, el único `require` que necesitas en todo el proyecto es: php <?php require 'vendor/autoload.php'; createMichis(); ### ¿Cómo autocargar archivos individuales con files? Composer también permite cargar archivos sueltos que no son clases, como funciones globales. En `composer.json` agregas la clave `files`: { "autoload": { "psr-4": { "App\\": "App/" }, "files": [ "App/logic/CreateMichis.php" ] } } Cada vez que modifiques `composer.json`, vuelve a ejecutar `composer du` para regenerar el autoloader [11:30]. > **¿Cuándo uso files en lugar de psr-4?** Usa `files` para cargar funciones sueltas o archivos que no contienen clases. Usa `psr-4` para mapear *namespaces* a carpetas con clases. ## ¿Por qué este enfoque es el estándar profesional? Frameworks como **Laravel** usan exactamente esta misma combinación de Composer y PSR-4 para cargar miles de clases sin que el desarrollador tenga que pensarlo [13:00]. Aprender este flujo te prepara para entender cómo funcionan por dentro las herramientas modernas de PHP. La regla de oro queda clara: *namespace* igual a la ruta del archivo y nombre de clase igual al nombre del archivo. Si respetas esto, Composer hace el resto. ¿Ya estás usando Composer en tus proyectos PHP o todavía dependes de `require` manuales? Cuéntalo en los comentarios.