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

Breadcrumb

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

function CaptureNode::compile

Overrides Node::compile

File

vendor/twig/twig/src/Node/CaptureNode.php, line 30

Class

CaptureNode
Represents a node for which we need to capture the output.

Namespace

Twig\Node

Code

public function compile(Compiler $compiler) : void {
    $useYield = $compiler->getEnvironment()
        ->useYield();
    if (!$this->getAttribute('raw')) {
        $compiler->raw("('' === \$tmp = ");
    }
    $compiler->raw($useYield ? "implode('', iterator_to_array(" : '\\Twig\\Extension\\CoreExtension::captureOutput(')
        ->raw("(function () use (&\$context, \$macros, \$blocks) {\n")
        ->indent()
        ->subcompile($this->getNode('body'))
        ->write("yield from [];\n")
        ->outdent()
        ->write('})()');
    if ($useYield) {
        $compiler->raw(', false))');
    }
    else {
        $compiler->raw(')');
    }
    if (!$this->getAttribute('raw')) {
        $compiler->raw(") ? '' : new Markup(\$tmp, \$this->env->getCharset());");
    }
    else {
        $compiler->raw(';');
    }
}

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal