Blame | Letzte Änderung | Log anzeigen | RSS feed
<?phpnamespace Illuminate\Foundation\Console;use Illuminate\Console\Command;use Illuminate\Support\Collection;use Symfony\Component\Console\Attribute\AsCommand;use Symfony\Component\Console\Output\OutputInterface;use Symfony\Component\Finder\Finder;use Symfony\Component\Finder\SplFileInfo;#[AsCommand(name: 'view:cache')]class ViewCacheCommand extends Command{/*** The name and signature of the console command.** @var string*/protected $signature = 'view:cache';/*** The name of the console command.** This name is used to identify the command during lazy loading.** @var string|null** @deprecated*/protected static $defaultName = 'view:cache';/*** The console command description.** @var string*/protected $description = "Compile all of the application's Blade templates";/*** Execute the console command.** @return mixed*/public function handle(){$this->callSilent('view:clear');$this->paths()->each(function ($path) {$prefix = $this->output->isVeryVerbose() ? '<fg=yellow;options=bold>DIR</> ' : '';$this->components->task($prefix.$path, null, OutputInterface::VERBOSITY_VERBOSE);$this->compileViews($this->bladeFilesIn([$path]));});$this->newLine();$this->components->info('Blade templates cached successfully.');}/*** Compile the given view files.** @param \Illuminate\Support\Collection $views* @return void*/protected function compileViews(Collection $views){$compiler = $this->laravel['view']->getEngineResolver()->resolve('blade')->getCompiler();$views->map(function (SplFileInfo $file) use ($compiler) {$this->components->task(' '.$file->getRelativePathname(), null, OutputInterface::VERBOSITY_VERY_VERBOSE);$compiler->compile($file->getRealPath());});if ($this->output->isVeryVerbose()) {$this->newLine();}}/*** Get the Blade files in the given path.** @param array $paths* @return \Illuminate\Support\Collection*/protected function bladeFilesIn(array $paths){return collect(Finder::create()->in($paths)->exclude('vendor')->name('*.blade.php')->files());}/*** Get all of the possible view paths.** @return \Illuminate\Support\Collection*/protected function paths(){$finder = $this->laravel['view']->getFinder();return collect($finder->getPaths())->merge(collect($finder->getHints())->flatten());}}