Embed.php (1347B)
1 <?php 2 3 /* 4 * This file is part of Twig. 5 * 6 * (c) 2012 Fabien Potencier 7 * 8 * For the full copyright and license information, please view the LICENSE 9 * file that was distributed with this source code. 10 */ 11 12 /** 13 * Represents an embed node. 14 * 15 * @author Fabien Potencier <fabien@symfony.com> 16 */ 17 class Twig_Node_Embed extends Twig_Node_Include 18 { 19 // we don't inject the module to avoid node visitors to traverse it twice (as it will be already visited in the main module) 20 public function __construct($filename, $index, Twig_Node_Expression $variables = null, $only = false, $ignoreMissing = false, $lineno, $tag = null) 21 { 22 parent::__construct(new Twig_Node_Expression_Constant('not_used', $lineno), $variables, $only, $ignoreMissing, $lineno, $tag); 23 24 $this->setAttribute('filename', $filename); 25 $this->setAttribute('index', $index); 26 } 27 28 protected function addGetTemplate(Twig_Compiler $compiler) 29 { 30 $compiler 31 ->write('$this->loadTemplate(') 32 ->string($this->getAttribute('filename')) 33 ->raw(', ') 34 ->repr($compiler->getFilename()) 35 ->raw(', ') 36 ->repr($this->getLine()) 37 ->raw(', ') 38 ->string($this->getAttribute('index')) 39 ->raw(')') 40 ; 41 } 42 }