Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
File Manager
/
core
/
vendor
/
laravel
/
framework
/
src
/
Illuminate
/
Foundation
/
Console
:
ViewCacheCommand.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php namespace Illuminate\Foundation\Console; use Illuminate\Console\Command; use Illuminate\Support\Collection; use Symfony\Component\Finder\Finder; use Symfony\Component\Finder\SplFileInfo; class ViewCacheCommand extends Command { /** * The name and signature of the console command. * * @var string */ protected $signature = '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->call('view:clear'); $this->paths()->each(function ($path) { $this->compileViews($this->bladeFilesIn([$path])); }); $this->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) { $compiler->compile($file->getRealPath()); }); } /** * 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() ); } }