/** * 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); } } } }
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); }