Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. IncludeNode.php

function IncludeNode::compile

Overrides Node::compile

File

vendor/twig/twig/src/Node/IncludeNode.php, line 37

Class

IncludeNode
Represents an include node.

Namespace

Twig\Node

Code

public function compile(Compiler $compiler) : void {
    $compiler->addDebugInfo($this);
    if ($this->getAttribute('ignore_missing')) {
        $template = $compiler->getVarName();
        $compiler->write("try {\n")
            ->indent()
            ->write(\sprintf('$%s = ', $template));
        $this->addGetTemplate($compiler, $template);
        $compiler->raw(";\n")
            ->outdent()
            ->write("} catch (LoaderError \$e) {\n")
            ->indent()
            ->write("// ignore missing template\n")
            ->write(\sprintf("\${$template} = null;\n", $template))
            ->outdent()
            ->write("}\n")
            ->write(\sprintf("if (\$%s) {\n", $template))
            ->indent()
            ->write(\sprintf('yield from $%s->unwrap()->yield(', $template));
        $this->addTemplateArguments($compiler);
        $compiler->raw(");\n")
            ->outdent()
            ->write("}\n");
    }
    else {
        $compiler->write('yield from ');
        $this->addGetTemplate($compiler);
        $compiler->raw('->unwrap()->yield(');
        $this->addTemplateArguments($compiler);
        $compiler->raw(");\n");
    }
}
RSS feed
Powered by Drupal