123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- <?php
-
- namespace Illuminate\View\Compilers;
-
- use InvalidArgumentException;
- use Illuminate\Filesystem\Filesystem;
-
- abstract class Compiler
- {
- /**
- * The Filesystem instance.
- *
- * @var \Illuminate\Filesystem\Filesystem
- */
- protected $files;
-
- /**
- * Get the cache path for the compiled views.
- *
- * @var string
- */
- protected $cachePath;
-
- /**
- * Create a new compiler instance.
- *
- * @param \Illuminate\Filesystem\Filesystem $files
- * @param string $cachePath
- * @return void
- *
- * @throws \InvalidArgumentException
- */
- public function __construct(Filesystem $files, $cachePath)
- {
- if (! $cachePath) {
- throw new InvalidArgumentException('Please provide a valid cache path.');
- }
-
- $this->files = $files;
- $this->cachePath = $cachePath;
- }
-
- /**
- * 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';
- }
-
- /**
- * Determine if the view at the given path is expired.
- *
- * @param string $path
- * @return bool
- */
- public function isExpired($path)
- {
- $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);
- }
- }
|