/** * Warm up an entire collection of templates based on the * provided RenderingContext (the TemplatePaths carried by * the RenderingContext, to be precise). * * Returns a FluidCacheWarmupResult with result information * about all detected template files and the compiling of * those files. If a template fails to compile or throws an * error, a mitigation suggestion is included for that file. * * @param RenderingContextInterface $renderingContext * @return FluidCacheWarmupResult */ public function warm(RenderingContextInterface $renderingContext) { $renderingContext->getTemplateCompiler()->enterWarmupMode(); $result = new FluidCacheWarmupResult(); $result->merge($this->warmupTemplateRootPaths($renderingContext), $this->warmupPartialRootPaths($renderingContext), $this->warmupLayoutRootPaths($renderingContext)); return $result; }
/** * @param string $templateIdentifier * @param \Closure $templateSourceClosure Closure which returns the template source if needed * @return ParsedTemplateInterface */ public function getOrParseAndStoreTemplate($templateIdentifier, $templateSourceClosure) { $compiler = $this->renderingContext->getTemplateCompiler(); if (isset($this->parsedTemplates[$templateIdentifier])) { $parsedTemplate = $this->parsedTemplates[$templateIdentifier]; } elseif ($compiler->has($templateIdentifier)) { $parsedTemplate = $compiler->get($templateIdentifier); } else { $parsedTemplate = $this->parse($templateSourceClosure($this, $this->renderingContext->getTemplatePaths()), $templateIdentifier); $this->parsedTemplates[$templateIdentifier] = $parsedTemplate; if ($parsedTemplate->isCompilable()) { try { $compiler->store($templateIdentifier, $parsedTemplate); } catch (StopCompilingException $stop) { $parsedTemplate->setCompilable(FALSE); return $parsedTemplate; } } } return $parsedTemplate; }