mirror of
https://github.com/twigphp/Twig.git
synced 2026-09-18 21:37:29 +00:00
Add static caching for Twig_Environment::getTemplateClass()
This commit is contained in:
@@ -44,6 +44,7 @@ class Twig_Environment
|
|||||||
protected $functionCallbacks;
|
protected $functionCallbacks;
|
||||||
protected $filterCallbacks;
|
protected $filterCallbacks;
|
||||||
protected $staging;
|
protected $staging;
|
||||||
|
protected $templateClasses;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor.
|
* Constructor.
|
||||||
@@ -107,6 +108,7 @@ class Twig_Environment
|
|||||||
$this->setCache($options['cache']);
|
$this->setCache($options['cache']);
|
||||||
$this->functionCallbacks = array();
|
$this->functionCallbacks = array();
|
||||||
$this->filterCallbacks = array();
|
$this->filterCallbacks = array();
|
||||||
|
$this->templateClasses = array();
|
||||||
|
|
||||||
$this->addExtension(new Twig_Extension_Core());
|
$this->addExtension(new Twig_Extension_Core());
|
||||||
$this->addExtension(new Twig_Extension_Escaper($options['autoescape']));
|
$this->addExtension(new Twig_Extension_Escaper($options['autoescape']));
|
||||||
@@ -262,7 +264,12 @@ class Twig_Environment
|
|||||||
*/
|
*/
|
||||||
public function getTemplateClass($name, $index = null)
|
public function getTemplateClass($name, $index = null)
|
||||||
{
|
{
|
||||||
return $this->templateClassPrefix.md5($this->getLoader()->getCacheKey($name)).(null === $index ? '' : '_'.$index);
|
$suffix = null === $index ? '' : '_'.$index;
|
||||||
|
$cls = $name.$suffix;
|
||||||
|
if (!isset($this->templateClasses[$cls])) {
|
||||||
|
$this->templateClasses[$cls] = $this->templateClassPrefix.md5($this->getLoader()->getCacheKey($name)).$suffix;
|
||||||
|
}
|
||||||
|
return $this->templateClasses[$cls];
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user