* @copyright Copyright (c) 2013 - 2018, TechFuze. (http://techfuze.net) */ class LatteEngine implements TemplateEngine { /** * Instance of the Latte Engine * * @var Latte\Engine The Latte Engine to be used */ protected $latte; /** * Set the directory of the current template. * * @param string $directory Template Directory * @throws LayoutException */ public function setDirectory($directory) { if (class_exists('\Latte\Engine', true)) { // If possible, load Latte\Engine $this->latte = new Latte; $this->latte->setTempDirectory(realpath(Core::$tempDir . DS . 'Latte')); } else { throw new LayoutException("Could not load LatteEngine. Is it installed or Composer not loaded?", 1); } } /** * Handle and retrieve a template file. * * @param string $file Template File * @param array $assigned_variables All the variables used in this layout * * @return string Output of the template */ public function get($file, $assigned_variables) { return $this->latte->renderToString($file, $assigned_variables); } /** * Retrieve the file extensions that this template engine uses. * * @return array All used extensions. eg: array('php') */ public function getFileExtensions(): array { return array('latte'); } /** * Reset the template engine to its default state, so it can be used again clean. */ public function reset(): bool { // If possible, load Latte\Engine $this->latte = null; return true; } }