app->singleton(PluginManager::class); } public function boot(): void { $manager = $this->app->make(PluginManager::class); // 迁移尚未执行(migrate:fresh 首轮)时跳过,避免查询不存在的表 if (! \Illuminate\Support\Facades\Schema::hasTable('plugin_records')) { return; } if (! is_dir(config('plugins.path'))) { return; } foreach ($manager->all() as $key => $plugin) { if (! $plugin['enabled']) { continue; } $provider = $manager->resolveProvider($key); if ($provider && class_exists($provider)) { $provider::bootPlugin($manager); } } } }