. */ namespace Doctrine\Common; /** * An IsolatedClassLoader is an autoloader for class files that can be * installed on the SPL autoload stack. It is a class loader that loads only classes * of a specific namespace and is suitable for working together with other autoloaders * in the SPL autoload stack. * * If no base path is configured, an IsolatedClassLoader relies on the include_path. * * @author Roman Borschel * @since 2.0 * * @deprecated Use Doctrine\Common\ClassLoader instead. */ class IsolatedClassLoader { private $_fileExtension = '.php'; private $_namespace; private $_basePath; private $_namespaceSeparator = '\\'; /** * Creates a new IsolatedClassLoader that loads classes of the * specified namespace. * * @param string $ns The namespace to use. */ public function __construct($ns = null) { $this->_namespace = $ns; } /** * Sets the namespace separator used by classes in the namespace of this class loader. * * @param string $sep The separator to use. */ public function setNamespaceSeparator($sep) { $this->_namespaceSeparator = $sep; } /** * Sets the base include path for all class files in the namespace of this class loader. * * @param string $basePath */ public function setBasePath($basePath) { $this->_basePath = $basePath; } /** * Sets the file extension of class files in the namespace of this class loader. * * @param string $fileExtension */ public function setFileExtension($fileExtension) { $this->_fileExtension = $fileExtension; } /** * Installs this class loader on the SPL autoload stack. */ public function register() { spl_autoload_register(array($this, 'loadClass')); } /** * Loads the given class or interface. * * @param string $classname The name of the class to load. * @return boolean TRUE if the class has been successfully loaded, FALSE otherwise. */ public function loadClass($className) { if ($this->_namespace && strpos($className, $this->_namespace.$this->_namespaceSeparator) !== 0) { return false; } require ($this->_basePath !== null ? $this->_basePath . DIRECTORY_SEPARATOR : '') . str_replace($this->_namespaceSeparator, DIRECTORY_SEPARATOR, $className) . $this->_fileExtension; return true; } }