| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 | <?php/* * This file is part of the Symfony package. * * (c) Fabien Potencier <fabien@symfony.com> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */namespace Symfony\Component\ClassLoader;/** * A class loader that uses a mapping file to look up paths. * * @author Fabien Potencier <fabien@symfony.com> */class MapClassLoader{    private $map = array();    /**     * Constructor.     *     * @param array $map A map where keys are classes and values the absolute file path     */    public function __construct(array $map)    {        $this->map = $map;    }    /**     * Registers this instance as an autoloader.     *     * @param Boolean $prepend Whether to prepend the autoloader or not     */    public function register($prepend = false)    {        spl_autoload_register(array($this, 'loadClass'), true, $prepend);    }    /**     * Loads the given class or interface.     *     * @param string $class The name of the class     */    public function loadClass($class)    {        if ('\\' === $class[0]) {            $class = substr($class, 1);        }        if (isset($this->map[$class])) {            require $this->map[$class];        }    }    /**     * Finds the path to the file where the class is defined.     *     * @param string $class The name of the class     *     * @return string|null The path, if found     */    public function findFile($class)    {        if ('\\' === $class[0]) {            $class = substr($class, 1);        }        if (isset($this->map[$class])) {            return $this->map[$class];        }    }}
 |