コード例 #1
0
ファイル: ClassLoader.class.php プロジェクト: johannes85/core
 /**
  * Register a class loader as a delegate
  *
  * @param   lang.IClassLoader l
  * @param   bool before default FALSE whether to register this as the first loader
  * @return  lang.IClassLoader the registered loader
  */
 public static function registerLoader(IClassLoader $l, $before = false)
 {
     $id = $l->instanceId();
     if ($before) {
         self::$delegates = array_merge([$id => $l], self::$delegates);
     } else {
         self::$delegates[$id] = $l;
     }
     if (!isset(self::$modules[$id]) && $l->providesResource('module.xp')) {
         self::$modules[$id] = Module::$INCOMPLETE;
         try {
             self::$modules[$id] = Module::register(self::declareModule($l));
         } catch (Throwable $e) {
             unset(self::$delegates[$id], self::$modules[$id]);
             throw $e;
         }
     }
     return $l;
 }