public static function load($handle) { $pathname = EXTENSIONS . "/{$handle}"; if (!is_array(self::$loaded_extensions)) { self::$loaded_extensions = array(); } if (!isset(self::$loaded_extensions[$pathname])) { if (!file_exists(realpath($pathname) . '/extension.driver.php')) { throw new ExtensionException('No extension driver found at ' . $pathname); } $class = (require_once realpath($pathname) . '/extension.driver.php'); self::$loaded_extensions[$pathname] = $class; if (is_null(self::$loaded_extensions[$pathname]) || !class_exists(self::$loaded_extensions[$pathname])) { throw new ExtensionException('Extension driver found at "' . $pathname . '" did not return a valid classname for instantiation.'); } self::$extensions[$handle] = new self::$loaded_extensions[$pathname](); self::$extensions_class_to_path[$class] = $pathname; } return self::$extensions[$handle]; }