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;
    }