public function autoload($class)
    {
        /* On explose la classe par '\' */
        $parts = preg_split('#\\\#', $class);

        /* On extrait le dernier element. */
        $className = array_pop($parts);

        /* On créé le chemin vers la classe */
        $path = implode('\\', $parts);
        $file = $className . '.php';

        /*
         * Si la classe recherchée est à la racine du namespace le chemin sera
         * égale à la clé. Cette condition peut éviter la boucle.
         */
        if (isset($this->prefix[ $path ])) {
            $filepath = $this->relplaceSlash($this->prefix[ $path ] . self::DS . $file);

            if ($this->requireFile($filepath)) {
                return $filepath;
            }
        }

        /*
         * Recherche une correspondance entre le namespace fournit en librairie
         * et la classe instanciée.
         */
        foreach ($this->lib as $nameSpace => $src) {
            $filepath = $this->relplaceSlash(str_replace($nameSpace, $src, $class) . '.php');

            if ($this->requireFile($filepath)) {
                return $filepath;
            }
        }

        /*
         * Si le namespace n'est pas précisé en librairie, on parcoure les répertoires
         * pour chercher une correspondance avec l'arborescence.
         */
        foreach ($this->map as $map) {
            $filepath = $this->relplaceSlash($map . self::DS . $path . self::DS . $file);

            if ($this->requireFile($filepath)) {
                return $filepath;
            }
        }

        return false;
    }
public function autoload($class)
    {
        /* On explose la classe par '\' */
        $parts = preg_split('#\\\#', $class);

        /* On extrait le dernier element. */
        $className = array_pop($parts);

        /* On créé le chemin vers la classe */
        $path = implode('\\', $parts);
        $file = $className . '.php';

        /*
         * Si la classe recherchée est à la racine du namespace le chemin sera
         * égale à la clé. Cette condition peut éviter la boucle.
         */
        if (isset($this->prefix[ $path ])) {
            $filepath = $this->relplaceSlash($this->prefix[ $path ] . self::DS . $file);

            if ($this->requireFile($filepath)) {
                return $filepath;
            }
        }

        /*
         * Recherche une correspondance entre le namespace fournit en librairie
         * et la classe instanciée.
         */
        foreach ($this->lib as $nameSpace => $src) {
            $filepath = $this->relplaceSlash(str_replace($nameSpace, $src, $class) . '.php');

            if ($this->requireFile($filepath)) {
                return $filepath;
            }
        }

        /*
         * Si le namespace n'est pas précisé en librairie, on parcoure les répertoires
         * pour chercher une correspondance avec l'arborescence.
         */
        foreach ($this->map as $map) {
            $filepath = $this->relplaceSlash($map . self::DS . $path . self::DS . $file);

            if ($this->requireFile($filepath)) {
                return $filepath;
            }
        }

        return false;
    }
public function autoload ( $ class ) { /* On explose la classe par '\' */ $ parts = preg_split ( '#\\\#' , $ class ) ; /* On extrait le dernier element. */ $ className = array_pop ( $ parts ) ; /* On créé le chemin vers la classe */ $ path = implode ( '\\' , $ parts ) ; $ file = $ className . '.php' ; /*
         * Si la classe recherchée est à la racine du namespace le chemin sera
         * égale à la clé. Cette condition peut éviter la boucle.
         */ if ( isset ( $ this -> prefix [ $ path ] ) ) { $ filepath = $ this -> relplaceSlash ( $ this -> prefix [ $ path ] . self :: DS . $ file ) ; if ( $ this -> requireFile ( $ filepath ) ) { return $ filepath ; } } /*
         * Recherche une correspondance entre le namespace fournit en librairie
         * et la classe instanciée.
         */ foreach ( $ this -> lib as $ nameSpace => $ src ) { $ filepath = $ this -> relplaceSlash ( str_replace ( $ nameSpace , $ src , $ class ) . '.php' ) ; if ( $ this -> requireFile ( $ filepath ) ) { return $ filepath ; } } /*
         * Si le namespace n'est pas précisé en librairie, on parcoure les répertoires
         * pour chercher une correspondance avec l'arborescence.
         */ foreach ( $ this -> map as $ map ) { $ filepath = $ this -> relplaceSlash ( $ map . self :: DS . $ path . self :: DS . $ file ) ; if ( $ this -> requireFile ( $ filepath ) ) { return $ filepath ; } } return false ; }
Pour tous les fichiers de la librairie, on cherche le fichier requit.
Le nom de l'objet, le namespace, l'emplacement doit respecter les recommandations PSR-4.

@see http://www.php-fig.org/psr/psr-4/

@param string $class Nom de la classe appelée.

@return string|bool Nom de la classe appelée ou FALSE.
Pour tous les fichiers de la librairie on cherche le fichier requit . Le nom de l objet le namespace l emplacement doit respecter les recommandations PSR - 4 .