Chris@0: Chris@0: */ Chris@0: Chris@0: namespace WebDriver; Chris@0: Chris@0: /** Chris@0: * WebDriver\ClassLoader (autoloader) class Chris@0: * Chris@0: * @package WebDriver Chris@0: */ Chris@0: final class ClassLoader Chris@0: { Chris@0: /** Chris@0: * Load class Chris@0: * Chris@0: * @param string $class Class name Chris@0: */ Chris@0: public static function loadClass($class) Chris@0: { Chris@0: $file = strpos($class, '\\') !== false Chris@0: ? str_replace('\\', DIRECTORY_SEPARATOR, $class) Chris@0: : str_replace('_', DIRECTORY_SEPARATOR, $class); Chris@0: Chris@0: $path = dirname(__DIR__) . DIRECTORY_SEPARATOR . $file . '.php'; Chris@0: Chris@0: if (file_exists($path)) { Chris@0: include_once $path; Chris@0: } Chris@0: } Chris@0: Chris@0: /** Chris@0: * Autoloader Chris@0: * Chris@0: * @param string $class Class name Chris@0: */ Chris@0: public static function autoload($class) Chris@0: { Chris@0: try { Chris@0: self::loadClass($class); Chris@0: } catch (\Exception $e) { Chris@0: } Chris@0: } Chris@0: } Chris@0: Chris@0: if (function_exists('spl_autoload_register')) { Chris@0: /** Chris@0: * use the SPL autoload stack Chris@0: */ Chris@0: spl_autoload_register(array('WebDriver\ClassLoader', 'autoload')); Chris@0: Chris@0: /** Chris@0: * preserve any existing __autoload Chris@0: */ Chris@0: if (function_exists('__autoload')) { Chris@0: spl_autoload_register('__autoload'); Chris@0: } Chris@0: } else { Chris@0: /** Chris@0: * Our fallback; only one __autoload per PHP instance Chris@0: * Chris@0: * @param string $class Class name Chris@0: */ Chris@0: function __autoload($class) Chris@0: { Chris@0: ClassLoader::autoload($class); Chris@0: } Chris@0: }