/** * @return Engine */ public function create() { $engine = new Engine(); // Options $engine->setTempDirectory($this->tempDir); $engine->setAutoRefresh($this->autoRefresh); $engine->setContentType($this->contentType); // Filters foreach ($this->filters as $name => $callback) { $engine->addFilter($name, $callback); } // Macros $engine->onCompile[] = function (Engine $engine) { $compiler = $engine->getCompiler(); foreach ($this->macros as $macro) { $macro::install($compiler); } }; return $engine; }