Ejemplo n.º 1
0
 /**
  * Searchs for the class by it's name using the added resolvers, loads it in scope of itself
  * and adds it to class cache
  * @param string $classname
  * @return boolean shows whether the class was successfully loaded or not
  */
 function loadClass($classname)
 {
     Assert::isScalar($classname);
     if (TypeUtils::isDefined($classname)) {
         return true;
     }
     foreach ($this->resolvers as $resolver) {
         $result = $resolver->getClassPath($classname);
         if ($result) {
             try {
                 require $result;
                 return true;
             } catch (Exception $e) {
                 $message = sprintf('Exception thrown when autoloading %s from %s:%s', $result, $e->getFile(), $e->getLine());
                 trigger_error($message, E_USER_ERROR);
             }
         }
     }
 }
Ejemplo n.º 2
0
 private function invokeResolvers($classname, $useCacheOnly)
 {
     Assert::isBoolean($useCacheOnly);
     foreach ($this->resolvers as $resolver) {
         $result = $resolver->loadClassFile($classname, $useCacheOnly);
         if ($result && ($classpath = $resolver->getClassPath($classname, true))) {
             $this->classPaths[] = $classpath;
             break;
         }
     }
     return TypeUtils::isDefined($classname);
 }