Пример #1
0
 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];
 }