Registro de cargadores automáticos
Configure spl_autoload_register y la carga automática basada en Composer.
Registro de cargadores automáticos es una lección gratuita de PHP Academy en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de PHP Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de PHP Academy incluye 4 lecciones en total.
spl_autoload_register
spl_autoload_register() registra una función de retorno de llamada que PHP ejecuta cada vez que se utiliza una clase no definida. Los cargadores automáticos múltiples se ejecutan en el orden en que se registraron.
Cargador automático personalizado básico
Un cargador automático mínimo, basado en PSR-4 y escrito manualmente:
<?php
spl_autoload_register(function (string $class): void {
$prefix = 'App\\';
$baseDir = __DIR__.'/src/';
if (!str_starts_with($class, $prefix)) return;
$rel = substr($class, strlen($prefix));
$file = $baseDir.str_replace('\\', '/', $rel).'.php';
if (file_exists($file)) require $file;
});Varios cargadores automáticos
Registre un cargador automático por cada prefijo de espacio de nombres para que cada uno gestione únicamente sus propias clases.
<?php
spl_autoload_register(fn($c) => loadFromSrc($c));
spl_autoload_register(fn($c) => loadFromLib($c));autoload.php de Composer
En la práctica, casi nunca necesitará escribir su propio cargador automático. Composer genera uno que cubre todos los paquetes y sus asignaciones PSR-4.
<?php
require __DIR__.'/vendor/autoload.php';dump-autoload
Después de añadir clases nuevas o cambiar la configuración de carga automática de composer.json, regenere el cargador automático: composer dump-autoload.
Cargador automático optimizado
composer dump-autoload --optimize crea un mapa de clases estático y elimina los análisis del sistema de archivos durante la ejecución. Se recomienda para producción.
Carga automática de archivos (funciones globales)
Utilice la clave files de composer.json para archivos auxiliares con funciones globales. Siempre se incluyen.
// composer.json
{
"autoload": {
"files": ["src/helpers.php"]
}
}Orden de ejecución de los cargadores automáticos
Los cargadores automáticos se llaman en el orden en que se registraron. Si el primero no encuentra la clase, retorna sin producir un error y PHP prueba el siguiente.
Depuración de problemas de carga automática
Causas comunes de «Class not found»: no haber ejecutado dump-autoload, usar mayúsculas o minúsculas incorrectas en el nombre del archivo o de la clase, o tener un prefijo de espacio de nombres que no coincide en composer.json.
Rendimiento de PSR-4 frente al mapa de clases
PSR-4 realiza llamadas stat al sistema de archivos. El mapa de clases hace una consulta en una tabla hash: es más rápido, pero requiere regenerarse cada vez que se añade una clase.
Prueba de la carga automática
Verifique el cargador automático:
<?php
require 'vendor/autoload.php';
$obj = new \App\Services\EmailService();
echo get_class($obj); // App\Services\EmailServiceResumen
spl_autoload_register sustenta toda la carga automática de PHP. Composer se encarga de la mayor parte del trabajo; solo debe ejecutar dump-autoload al añadir clases nuevas.
Comprobación rápida
¿Qué comando regenera el cargador automático de Composer?
Preguntas frecuentes
¿La lección «Registro de cargadores automáticos» es gratis?
Sí — el texto completo de «Registro de cargadores automáticos» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de PHP Academy, actualiza a CoddyKit PRO. El curso de PHP Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Registro de cargadores automáticos»?
Configure spl_autoload_register y la carga automática basada en Composer. Practicas PHP Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar PHP Academy?
No se requiere experiencia previa. PHP Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.
¿Cuánto tiempo toma la lección «Registro de cargadores automáticos»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de PHP Academy?
Sí. Cada lección de PHP Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Declaración y uso de espacios de nombres
- Espacios de nombres anidados y alias
- Estándar de carga automática PSR-4
- Registro de cargadores automáticos