Autoload con Composer
Composer es una herramienta de gestión de dependencias para PHP. Permite instalar, actualizar y cargar automáticamente librerías externas que necesite nuestro proyecto.
En lugar de descargar manualmente archivos de terceros, Composer se encarga de:
- Descargar las librerías necesarias (por ejemplo, para conexión a bases de datos, plantillas, envío de correos, etc.).
- Mantener sus versiones actualizadas.
- Y lo más importante: cargar automáticamente todas las clases mediante su sistema de autoload.
Composer se ha convertido en un estándar en el desarrollo moderno de PHP, usado en la mayoría de frameworks como Laravel, Symfony o CodeIgniter.
El autoload de Composer
Cuando instalas Composer en tu proyecto y ejecutas comandos como:
composer install
Composer genera un archivo llamado:
vendor/autoload.php
Este archivo contiene toda la lógica necesaria para cargar automáticamente las clases de las librerías que has instalado, y también las tuyas propias, si lo configuras.
De esta forma, en tu aplicación solo necesitas incluir una única línea al principio de tu código principal:
require_once __DIR__ . '/vendor/autoload.php';
Y a partir de ahí, todas las clases estarán disponibles automáticamente, sin necesidad de registrar tu propio spl_autoload_register().
PSR-4: el estándar de nombres y rutas
Composer utiliza un estándar llamado PSR-4, que define cómo deben relacionarse los namespaces y las rutas de los archivos.
El namespace de una clase indica en qué carpeta se encuentra. Composer usa esa información para encontrar automáticamente el archivo correcto.
Por ejemplo, si tienes esta estructura:
src/
└── Controladores/
└── UsuarioController.php
Y tu clase se define así:
<?php
namespace App\Controladores;
class UsuarioController {
public function mostrar() {
echo "Mostrando usuario";
}
}
Entonces en tu archivo composer.json puedes indicar:
{
"autoload": {
"psr-4": {
"App\\": "src/"
}
}
}
Tras ejecutar:
composer dump-autoload
Composer sabrá que cualquier clase que empiece por App\ se encuentra dentro de la carpeta src/.
Así, cuando uses:
use App\Controladores\UsuarioController;
$controller = new UsuarioController();
$controller->mostrar();
Composer se encargará de cargar automáticamente el archivo src/Controladores/UsuarioController.php.
Autoload nativo o con Composer
El autoload nativo de PHP con spl_autoload_register() es ideal para proyectos pequeños o didácticos, donde queremos entender cómo se cargan las clases.
Sin embargo, en proyectos reales o profesionales, Composer se encarga del autoload de forma automática y estandarizada, siguiendo PSR-4. Composer es la herramienta que lo automatiza en proyectos reales.