/** * Applies filters on template content. * @return string */ public function compile() { if (!$this->filters) { $this->onPrepareFilters($this); } $code = $this->getSource(); foreach ($this->filters as $filter) { $code = self::extractPhp($code, $blocks); $code = $filter->invoke($code); $code = strtr($code, $blocks); // put PHP code back } return NTemplateHelpers::optimizePhp($code); }