Loads a template by name.
string $name The template name:
integer $index The index if it is an embedded template:
Twig_TemplateInterface A template instance representing the given template name
public function loadTemplate($name, $index = null) {
$cls = $this
->getTemplateClass($name, $index);
if (isset($this->loadedTemplates[$cls])) {
return $this->loadedTemplates[$cls];
}
if (!class_exists($cls, false)) {
if (false === ($cache = $this
->getCacheFilename($name))) {
eval('?>' . $this
->compileSource($this->loader
->getSource($name), $name));
}
else {
if (!is_file($cache) || $this
->isAutoReload() && !$this
->isTemplateFresh($name, filemtime($cache))) {
$this
->writeCacheFile($cache, $this
->compileSource($this->loader
->getSource($name), $name));
}
require_once $cache;
}
}
if (!$this->runtimeInitialized) {
$this
->initRuntime();
}
return $this->loadedTemplates[$cls] = new $cls($this);
}