Docs
This commit is contained in:
@@ -9,8 +9,28 @@
|
|||||||
* file that was distributed with this source code.
|
* file that was distributed with this source code.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Mustache Cache interface.
|
||||||
|
*
|
||||||
|
* Interface for caching and loading Mustache_Template classes
|
||||||
|
* generated by the Mustache_Compiler.
|
||||||
|
*/
|
||||||
interface Mustache_Cache
|
interface Mustache_Cache
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* Load a compiled Mustache_Template class from cache.
|
||||||
|
*
|
||||||
|
* @param string $key
|
||||||
|
* @return boolean indicates successfully class load
|
||||||
|
*/
|
||||||
public function load($key);
|
public function load($key);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Cache and load a compiled Mustache_Template class.
|
||||||
|
*
|
||||||
|
* @param string $key
|
||||||
|
* @param string $value
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
public function cache($key, $value);
|
public function cache($key, $value);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,6 +9,13 @@
|
|||||||
* file that was distributed with this source code.
|
* file that was distributed with this source code.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Abstract Mustache Cache class.
|
||||||
|
*
|
||||||
|
* Provides logging support to child implementations.
|
||||||
|
*
|
||||||
|
* @abstract
|
||||||
|
*/
|
||||||
abstract class Mustache_Cache_AbstractCache implements Mustache_Cache
|
abstract class Mustache_Cache_AbstractCache implements Mustache_Cache
|
||||||
{
|
{
|
||||||
private $logger = null;
|
private $logger = null;
|
||||||
|
|||||||
@@ -9,17 +9,39 @@
|
|||||||
* file that was distributed with this source code.
|
* file that was distributed with this source code.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Mustache Cache filesystem implementation.
|
||||||
|
*
|
||||||
|
* A FilesystemCache instance caches Mustache Template classes from the filesystem by name:
|
||||||
|
*
|
||||||
|
* $cache = new Mustache_Cache_FilesystemCache(dirname(__FILE__).'/cache');
|
||||||
|
* $cache->cache($className, $compiledSource);
|
||||||
|
*
|
||||||
|
* Benefits from any opcode caching that may be setup in your environment.
|
||||||
|
*/
|
||||||
class Mustache_Cache_FilesystemCache extends Mustache_Cache_AbstractCache
|
class Mustache_Cache_FilesystemCache extends Mustache_Cache_AbstractCache
|
||||||
{
|
{
|
||||||
private $baseDir;
|
private $baseDir;
|
||||||
private $fileMode;
|
private $fileMode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Filesystem cache constructor.
|
||||||
|
*
|
||||||
|
* @param string $baseDir Directory for compiled templates.
|
||||||
|
* @param int $fileMode Override default permissions for cache files. Defaults to using the system-defined umask.
|
||||||
|
*/
|
||||||
public function __construct($baseDir, $fileMode = null)
|
public function __construct($baseDir, $fileMode = null)
|
||||||
{
|
{
|
||||||
$this->baseDir = $baseDir;
|
$this->baseDir = $baseDir;
|
||||||
$this->fileMode = $fileMode;
|
$this->fileMode = $fileMode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Load the class from cache using `require_once`.
|
||||||
|
*
|
||||||
|
* @param string $key
|
||||||
|
* @return boolean
|
||||||
|
*/
|
||||||
public function load($key)
|
public function load($key)
|
||||||
{
|
{
|
||||||
$fileName = $this->getCacheFilename($key);
|
$fileName = $this->getCacheFilename($key);
|
||||||
@@ -32,6 +54,13 @@ class Mustache_Cache_FilesystemCache extends Mustache_Cache_AbstractCache
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Cache and load the compiled class
|
||||||
|
*
|
||||||
|
* @param string $key
|
||||||
|
* @param string $value
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
public function cache($key, $value)
|
public function cache($key, $value)
|
||||||
{
|
{
|
||||||
$fileName = $this->getCacheFilename($key);
|
$fileName = $this->getCacheFilename($key);
|
||||||
@@ -46,11 +75,26 @@ class Mustache_Cache_FilesystemCache extends Mustache_Cache_AbstractCache
|
|||||||
$this->load($key);
|
$this->load($key);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Build the cache filename.
|
||||||
|
* Subclasses should override for custom cache directory structures.
|
||||||
|
*
|
||||||
|
* @param string $name
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
protected function getCacheFilename($name)
|
protected function getCacheFilename($name)
|
||||||
{
|
{
|
||||||
return sprintf('%s/%s.php', $this->baseDir, $name);
|
return sprintf('%s/%s.php', $this->baseDir, $name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create cache directory
|
||||||
|
*
|
||||||
|
* @param string $fileName
|
||||||
|
* @return string
|
||||||
|
*
|
||||||
|
* @throws Mustache_Exception_RuntimeException If unable to create directory
|
||||||
|
*/
|
||||||
private function buildDirectoryForFilename($fileName)
|
private function buildDirectoryForFilename($fileName)
|
||||||
{
|
{
|
||||||
$dirName = dirname($fileName);
|
$dirName = dirname($fileName);
|
||||||
@@ -69,6 +113,15 @@ class Mustache_Cache_FilesystemCache extends Mustache_Cache_AbstractCache
|
|||||||
return $dirName;
|
return $dirName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Write cache file
|
||||||
|
*
|
||||||
|
* @param string $fileName
|
||||||
|
* @param string $value
|
||||||
|
* @return void
|
||||||
|
*
|
||||||
|
* @throws Mustache_Exception_RuntimeException If unable to write file
|
||||||
|
*/
|
||||||
private function writeFile($fileName, $value)
|
private function writeFile($fileName, $value)
|
||||||
{
|
{
|
||||||
$dirName = $this->buildDirectoryForFilename($fileName);
|
$dirName = $this->buildDirectoryForFilename($fileName);
|
||||||
|
|||||||
@@ -9,13 +9,32 @@
|
|||||||
* file that was distributed with this source code.
|
* file that was distributed with this source code.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Mustache Cache in-memory implementation.
|
||||||
|
*
|
||||||
|
* In-memory implementation useful during development.
|
||||||
|
* Not recommended for production use.
|
||||||
|
*/
|
||||||
class Mustache_Cache_NoopCache extends Mustache_Cache_AbstractCache
|
class Mustache_Cache_NoopCache extends Mustache_Cache_AbstractCache
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* Loads nothing. Move along.
|
||||||
|
*
|
||||||
|
* @param string $key
|
||||||
|
* @return boolean
|
||||||
|
*/
|
||||||
public function load($key)
|
public function load($key)
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Loads the compiled Mustache Template class without caching.
|
||||||
|
*
|
||||||
|
* @param string $key
|
||||||
|
* @param string $compiled
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
public function cache($key, $compiled)
|
public function cache($key, $compiled)
|
||||||
{
|
{
|
||||||
$this->log(
|
$this->log(
|
||||||
|
|||||||
Reference in New Issue
Block a user