repository = $entityManager->getRepository(FormForgeTemplate::class); } /** * Returns the source context for a given template logical name. * * @param string $name The template logical name * * @return Source * * @throws LoaderError When $name is not found */ public function getSourceContext($name) { if (false === $template = $this->getTemplate($name)){ throw new LoaderError(sprintf('Template "%s" does not exist.', $name)); } return new Source($template->getContent(), $name); } /** * Gets the cache key to use for the cache for a given template name. * * @param string $name The name of the template to load * * @return string The cache key * * @throws LoaderError When $name is not found */ public function getCacheKey($name) { if (false === $template = $this->getTemplate($name)){ throw new LoaderError(sprintf('Template "%s" does not exist.', $name)); } return $name; } /** * Returns true if the template is still fresh. * * @param string $name The template name * @param int $time Timestamp of the last modification time of the * cached template * * @return bool true if the template is fresh, false otherwise * * @throws LoaderError When $name is not found */ public function isFresh($name, $time) { if (false === $template = $this->getTemplate($name)){ throw new LoaderError(sprintf('Template "%s" does not exist.', $name)); } return $template->getLastUpdated()->getTimestamp() <= $time; } /** * Check if we have the source code of a template, given its name. * * @param string $name The name of the template to check if we can load * * @return bool If the template source code is handled by this loader or not */ public function exists($name) { return (bool)$this->getTemplate($name); } /** * @param $name * @return FormForgeType|object|null */ protected function getTemplate($name) { return $this->repository->findOneBy(['twigName' => $name]); } }