<?php
namespace Illuminate\View\Compilers;
use Illuminate\Filesystem\Filesystem;
abstract class Compiler
{// a abstract class
/**
* The Filesystem instance.
*
* @var \Illuminate\Filesystem\Filesystem
*/
protected $files;//The filesystem instance.
/**
* Get the cache path for the compiled views.
*
* @var string
*/
protected $cachePath;//Get the cache path for the compiled views.
/**
* Create a new compiler instance.
*
* @param \Illuminate\Filesystem\Filesystem $files
* @param string $cachePath
* @return void
*/
public function __construct(Filesystem $files, $cachePath)
{
$this->files = $files;
$this->cachePath = $cachePath;
}//_construct
// files
// set some construct
/**
* Get the path to the compiled version of a view.
*
* @param string $path
* @return string
*/
public function getCompiledPath($path)
{
return $this->cachePath.'/'.sha1($path).'.php';
}// get The Compiled Path
/**
* Determine if the view at the given path is expired.
*
* @param string $path
* @return bool
*/
public function isExpired($path)
{// check is expired
$compiled = $this->getCompiledPath($path);// compiled
// 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->cachePath || ! $this->files->exists($compiled)) {
return true;
}// true
$lastModified = $this->files->lastModified($path);
// last Modified
return $lastModified >= $this->files->lastModified($compiled);
}// has this result
}
共同学习,写下你的评论
评论加载中...
作者其他优质文章