components->info('Reloading services.'); $exceptions = Collection::wrap(explode(',', $this->option('except') ?? '')) ->map(fn ($except) => trim($except)) ->filter() ->unique() ->flip(); $tasks = Collection::wrap($this->getReloadTasks()) ->reject(fn ($command, $key) => $exceptions->hasAny([$command, $key])) ->toArray(); foreach ($tasks as $description => $command) { $this->components->task($description, fn () => $this->callSilently($command) == 0); } $this->newLine(); } /** * Get the commands that should be reloaded. * * @return array */ public function getReloadTasks() { return [ 'queue' => 'queue:restart', 'schedule' => 'schedule:interrupt', ...ServiceProvider::$reloadCommands, ]; } /** * Get the console command arguments. * * @return array */ protected function getOptions() { return [ ['except', 'e', InputOption::VALUE_OPTIONAL, 'The commands to skip'], ]; } }