Blame | Letzte Änderung | Log anzeigen | RSS feed
<?phpnamespace Illuminate\View\Compilers;use Illuminate\Filesystem\Filesystem;use Illuminate\Support\Str;use InvalidArgumentException;abstract class Compiler{/*** The filesystem instance.** @var \Illuminate\Filesystem\Filesystem*/protected $files;/*** The cache path for the compiled views.** @var string*/protected $cachePath;/*** The base path that should be removed from paths before hashing.** @var string*/protected $basePath;/*** Determines if compiled views should be cached.** @var bool*/protected $shouldCache;/*** The compiled view file extension.** @var string*/protected $compiledExtension = 'php';/*** Create a new compiler instance.** @param \Illuminate\Filesystem\Filesystem $files* @param string $cachePath* @param string $basePath* @param bool $shouldCache* @param string $compiledExtension* @return void** @throws \InvalidArgumentException*/public function __construct(Filesystem $files,$cachePath,$basePath = '',$shouldCache = true,$compiledExtension = 'php'){if (! $cachePath) {throw new InvalidArgumentException('Please provide a valid cache path.');}$this->files = $files;$this->cachePath = $cachePath;$this->basePath = $basePath;$this->shouldCache = $shouldCache;$this->compiledExtension = $compiledExtension;}/*** Get the path to the compiled version of a view.** @param string $path* @return string*/public function getCompiledPath($path){return $this->cachePath.'/'.sha1('v2'.Str::after($path, $this->basePath)).'.'.$this->compiledExtension;}/*** Determine if the view at the given path is expired.** @param string $path* @return bool*/public function isExpired($path){if (! $this->shouldCache) {return true;}$compiled = $this->getCompiledPath($path);// If the compiled file doesn't exist we will indicate that the view is expired// so that it can be re-compiled. Else, we will verify the last modification// of the views is less than the modification times of the compiled views.if (! $this->files->exists($compiled)) {return true;}return $this->files->lastModified($path) >=$this->files->lastModified($compiled);}/*** Create the compiled file directory if necessary.** @param string $path* @return void*/protected function ensureCompiledDirectoryExists($path){if (! $this->files->exists(dirname($path))) {$this->files->makeDirectory(dirname($path), 0777, true, true);}}}