protected $functionCallbacks;
protected $filterCallbacks;
protected $staging;
+ protected $templateClasses;
/**
* Constructor.
$this->setCache($options['cache']);
$this->functionCallbacks = array();
$this->filterCallbacks = array();
+ $this->templateClasses = array();
$this->addExtension(new Twig_Extension_Core());
$this->addExtension(new Twig_Extension_Escaper($options['autoescape']));
*/
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];
}
/**