2 votes

Supprimer le nom de la classe ltrim sur le chargement automatique

Je vois que le code bootstrap.php de phpunit de différentes bibliothèques (dans ce cas Symfony) inclut généralement quelque chose comme :

spl_autoload_register(function ($class) {
    if (0 === strpos(ltrim($class, '/'), 'Symfony\Component\EventDispatcher')) {
        if (file_exists($file = __DIR__.'/../'.substr(str_replace('\\', '/', $class), strlen('Symfony\Component\EventDispatcher')).'.php')) {
            require_once $file;
        }
    }
});

Je me demande dans quel cas le nom de la classe aura un slash (/) initial ?

1voto

fimas Points 136

Je ne suis pas expert en Symfony, mais il semble qu'ils prennent un nom de fichier et tentent de le charger, s'il a l'espace de noms Symfony\Component\EventDispatcher. Le ltrim() supprime simplement tout résidu pour éviter tout erreur lorsqu'ils ajoutent leur propre chemin de recherche.

Je ne peux que deviner, mais je suis assez sûr que c'est ce qui se passe.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X