Version 1
[yaffs-website] / vendor / twig / twig / lib / Twig / Node / Import.php
1 <?php
2
3 /*
4  * This file is part of Twig.
5  *
6  * (c) 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 import node.
14  *
15  * @author Fabien Potencier <fabien@symfony.com>
16  */
17 class Twig_Node_Import extends Twig_Node
18 {
19     public function __construct(Twig_Node_Expression $expr, Twig_Node_Expression $var, $lineno, $tag = null)
20     {
21         parent::__construct(array('expr' => $expr, 'var' => $var), array(), $lineno, $tag);
22     }
23
24     public function compile(Twig_Compiler $compiler)
25     {
26         $compiler
27             ->addDebugInfo($this)
28             ->write('')
29             ->subcompile($this->getNode('var'))
30             ->raw(' = ')
31         ;
32
33         if ($this->getNode('expr') instanceof Twig_Node_Expression_Name && '_self' === $this->getNode('expr')->getAttribute('name')) {
34             $compiler->raw('$this');
35         } else {
36             $compiler
37                 ->raw('$this->loadTemplate(')
38                 ->subcompile($this->getNode('expr'))
39                 ->raw(', ')
40                 ->repr($this->getTemplateName())
41                 ->raw(', ')
42                 ->repr($this->getTemplateLine())
43                 ->raw(')')
44             ;
45         }
46
47         $compiler->raw(";\n");
48     }
49 }