Goetas\Twital\EventSubscriber\AbstractTwigExpressionSubscriber::processTwig PHP Method

processTwig() protected method

protected processTwig ( $template, CLosure $processor )
$processor CLosure
    protected function processTwig($template, \CLosure $processor)
    {
        $offset = 0;
        while (preg_match($this->regexes['twig_start'], $template, $matches, PREG_OFFSET_CAPTURE, $offset)) {
            $twig = '';
            $buffer = $matches[0][0];
            $from = $matches[0][1];
            $offset = $from + strlen($buffer);
            $pattern = $this->regexes['twig_inner_' . $buffer];
            while (preg_match($pattern, $template, $inners, PREG_OFFSET_CAPTURE, $offset)) {
                $buffer .= $inners[0][0];
                $offset += strlen($inners[0][0]);
                if (isset($inners[2])) {
                    $twig = $buffer;
                    break;
                }
            }
            if (!$twig) {
                continue;
            }
            $replacement = $processor($twig, $template, $from);
            $template = substr_replace($template, $replacement, $from, $offset - $from);
            $offset = $from + strlen($replacement);
        }
        return $template;
    }
AbstractTwigExpressionSubscriber