示例#1
0
 public static function destruct($class, $class_hash = '')
 {
     if (self::$destruct_started) {
         return;
     }
     self::$destruct_started = true;
     self::$all_deps = array();
     foreach (array_keys(self::$loaded) as $classname) {
         $deps = $classname::__dependencies();
         if (!empty($deps)) {
             foreach ($deps as $name) {
                 if (isset(registry::$aliases[$name])) {
                     if (is_array(registry::$aliases[$name])) {
                         $dep_class = registry::$aliases[$name][0];
                     } else {
                         $dep_class = registry::$aliases[$name];
                     }
                 } elseif (registry::class_exists($name)) {
                     $dep_class = $name;
                 }
                 self::$all_deps[$dep_class][] = $classname;
             }
         }
     }
     self::_destruct($class, $class_hash);
     self::$destruct_started = false;
 }