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; }