30 lines
1020 B
PHP
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;
|
|
}
|
|
});
|