*/ private static array $callbacks = []; /** @var array */ private static array $loadedFiles = []; public static function markAsLoaded(string $filePath): void { self::$loadedFiles[realpath($filePath) ?: $filePath] = true; } public static function isLoaded(string $filePath): bool { return isset(self::$loadedFiles[realpath($filePath) ?: $filePath]); } public static function add(callable $registrar): void { self::$callbacks[] = $registrar; } public static function clear(): void { self::$callbacks = []; self::$loadedFiles = []; } public static function apply(RouteCollector $collector, Router $router): void { foreach (self::$callbacks as $cb) { $cb($collector, $router); } } }