Example #1
0
 /**
  * Autoloader.
  *
  *  <code>
  *      ClassLoader::load();
  *  </code>
  *
  * @access  public
  * @param  string  $className Class name
  * @return boolean
  */
 public static function load($className)
 {
     $className = ltrim($className, '\\');
     /**
      * Try to autoload an aliased class
      */
     if (isset(ClassLoader::$aliases[$className])) {
         return class_alias(ClassLoader::$aliases[$className], $className);
     }
     /**
      * Try to load a mapped class
      */
     if (isset(ClassLoader::$classes[$className]) && file_exists(ClassLoader::$classes[$className])) {
         include ClassLoader::$classes[$className];
         return true;
     }
     /**
      * Try to load class from a registered namespace
      */
     foreach (ClassLoader::$namespaces as $namespace => $path) {
         if (strpos($className, $namespace) === 0) {
             if (ClassLoader::loadPSR0(substr($className, strlen($namespace)), $path)) {
                 return true;
             }
         }
     }
     /**
      * Try to load a PSR-0 compatible class
      * The second call to the loadPSR0 method is used to autoload legacy code
      */
     if (ClassLoader::loadPSR0($className) || ClassLoader::loadPSR0(strtolower($className))) {
         return true;
     }
     return false;
 }