Просмотр файла engine/classes/lib/Twig/Node/Block.php

Размер файла: 1.05Kb
  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 node.
  15. *
  16. * @author Fabien Potencier <fabien@symfony.com>
  17. */
  18. class Twig_Node_Block extends Twig_Node
  19. {
  20. public function __construct($name, Twig_NodeInterface $body, $lineno, $tag = null)
  21. {
  22. parent::__construct(array('body' => $body), array('name' => $name), $lineno, $tag);
  23. }
  24.  
  25. /**
  26. * Compiles the node to PHP.
  27. *
  28. * @param Twig_Compiler A Twig_Compiler instance
  29. */
  30. public function compile(Twig_Compiler $compiler)
  31. {
  32. $compiler
  33. ->addDebugInfo($this)
  34. ->write(sprintf("public function block_%s(\$context, array \$blocks = array())\n", $this->getAttribute('name')), "{\n")
  35. ->indent()
  36. ;
  37.  
  38. $compiler
  39. ->subcompile($this->getNode('body'))
  40. ->outdent()
  41. ->write("}\n\n")
  42. ;
  43. }
  44. }