discover($pluginsDir); $app->bind(ExtensionRegistry::class, function () use ($registry) { return $registry; }); static::$registry = $registry; } /** * 重置插件注册缓存 * * 安装/卸载/启用/禁用插件后调用,使 ExtensionRegistry 重新扫描。 * * @return void */ public static function resetCache(): void { static::$registry = null; } /** * 获取 ExtensionRegistry 实例 * * @return ExtensionRegistry|null */ public static function getRegistry(): ?ExtensionRegistry { return static::$registry; } /** * 手动注册一个插件元数据到 Registry * * @param string $key 插件标识 * @param string $type 插件类型 * @param string|null $handlerClass 处理器类名 * @param string $basePath 插件目录 * @param array $meta 元数据 * @return void */ public static function registerExtension( string $key, string $type, ?string $handlerClass = null, string $basePath = '', array $meta = [] ): void { if (static::$registry) { static::$registry->register($key, $type, $handlerClass, $basePath, $meta); } } }