1<?php 2 3/* 4 * This file is part of Twig. 5 * 6 * (c) Fabien Potencier 7 * (c) Armin Ronacher 8 * 9 * For the full copyright and license information, please view the LICENSE 10 * file that was distributed with this source code. 11 */ 12 13namespace Twig\Node; 14 15use Twig\Compiler; 16 17/** 18 * Represents a block node. 19 * 20 * @author Fabien Potencier <fabien@symfony.com> 21 */ 22class BlockNode extends Node 23{ 24 public function __construct(string $name, Node $body, int $lineno, string $tag = null) 25 { 26 parent::__construct(['body' => $body], ['name' => $name], $lineno, $tag); 27 } 28 29 public function compile(Compiler $compiler) 30 { 31 $compiler 32 ->addDebugInfo($this) 33 ->write(sprintf("public function block_%s(\$context, array \$blocks = [])\n", $this->getAttribute('name')), "{\n") 34 ->indent() 35 ->write("\$macros = \$this->macros;\n") 36 ; 37 38 $compiler 39 ->subcompile($this->getNode('body')) 40 ->outdent() 41 ->write("}\n\n") 42 ; 43 } 44} 45 46class_alias('Twig\Node\BlockNode', 'Twig_Node_Block'); 47