components->info('Clearing cached bootstrap files.'); $exceptions = Collection::wrap(explode(',', $this->option('except') ?? '')) ->map(fn ($except) => trim($except)) ->filter() ->unique() ->flip(); $tasks = Collection::wrap($this->getOptimizeClearTasks()) ->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 run to clear the "optimization" files. * * @return array */ public function getOptimizeClearTasks() { return [ 'cache' => 'cache:clear', 'compiled' => 'clear-compiled', 'config' => 'config:clear', 'events' => 'event:clear', 'routes' => 'route:clear', 'views' => 'view:clear', ...ServiceProvider::$optimizeClearCommands, ]; } /** * Get the console command arguments. * * @return array */ protected function getOptions() { return [ ['except', 'e', InputOption::VALUE_OPTIONAL, 'The commands to skip'], ]; } }