BlockReference.php (1323B)
1 <?php 2 3 /* 4 * This file is part of Twig. 5 * 6 * (c) 2009 Fabien Potencier 7 * (c) 2009 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 13 /** 14 * Represents a block call node. 15 * 16 * @author Fabien Potencier <fabien@symfony.com> 17 */ 18 class Twig_Node_Expression_BlockReference extends Twig_Node_Expression 19 { 20 public function __construct(Twig_NodeInterface $name, $asString = false, $lineno, $tag = null) 21 { 22 parent::__construct(array('name' => $name), array('as_string' => $asString, 'output' => false), $lineno, $tag); 23 } 24 25 public function compile(Twig_Compiler $compiler) 26 { 27 if ($this->getAttribute('as_string')) { 28 $compiler->raw('(string) '); 29 } 30 31 if ($this->getAttribute('output')) { 32 $compiler 33 ->addDebugInfo($this) 34 ->write('$this->displayBlock(') 35 ->subcompile($this->getNode('name')) 36 ->raw(", \$context, \$blocks);\n") 37 ; 38 } else { 39 $compiler 40 ->raw('$this->renderBlock(') 41 ->subcompile($this->getNode('name')) 42 ->raw(', $context, $blocks)') 43 ; 44 } 45 } 46 }