Files
pta/app/autoload.php
2026-08-20 13:22:49 +02:00

30 lines
1020 B
PHP

<?php
declare(strict_types=1);
/**
* Autoloader PSR-4 minimal pour le préfixe « App\ ».
*
* Réécrit à la main et volontairement : le projet n'a AUCUNE dépendance, donc
* pas de vendor/autoload.php de Composer. La correspondance est directe —
* App\Models\AgentModel se résout en app/Models/AgentModel.php — ce qui impose
* de nommer un fichier exactement comme sa classe, casse comprise (les volumes
* Linux sont sensibles à la casse, contrairement à un poste de développement macOS).
*
* Une classe absente n'est pas une erreur ici : on rend la main aux autoloaders
* suivants, et c'est PHP qui lèvera un « Class not found » explicite.
*/
spl_autoload_register(static function (string $class): void {
$prefix = 'App\\';
if (!str_starts_with($class, $prefix)) {
return;
}
$relativeClass = substr($class, strlen($prefix));
$file = __DIR__ . '/' . str_replace('\\', '/', $relativeClass) . '.php';
if (is_file($file)) {
require_once $file;
}
});