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($name, \Twig_NodeInterface $body, $lineno, $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 ; 36 37 $compiler 38 ->subcompile($this->getNode('body')) 39 ->outdent() 40 ->write("}\n\n") 41 ; 42 } 43} 44 45class_alias('Twig\Node\BlockNode', 'Twig_Node_Block'); 46