EnterProfile.php 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. <?php
  2. /*
  3. * This file is part of Twig.
  4. *
  5. * (c) 2015 Fabien Potencier
  6. *
  7. * For the full copyright and license information, please view the LICENSE
  8. * file that was distributed with this source code.
  9. */
  10. /**
  11. * Represents a profile enter node.
  12. *
  13. * @author Fabien Potencier <fabien@symfony.com>
  14. */
  15. class Twig_Profiler_Node_EnterProfile extends Twig_Node
  16. {
  17. public function __construct($extensionName, $type, $name, $varName)
  18. {
  19. parent::__construct(array(), array('extension_name' => $extensionName, 'name' => $name, 'type' => $type, 'var_name' => $varName));
  20. }
  21. /**
  22. * {@inheritdoc}
  23. */
  24. public function compile(Twig_Compiler $compiler)
  25. {
  26. $compiler
  27. ->write(sprintf('$%s = $this->env->getExtension(', $this->getAttribute('var_name')))
  28. ->repr($this->getAttribute('extension_name'))
  29. ->raw(");\n")
  30. ->write(sprintf('$%s->enter($%s = new Twig_Profiler_Profile($this->getTemplateName(), ', $this->getAttribute('var_name'), $this->getAttribute('var_name').'_prof'))
  31. ->repr($this->getAttribute('type'))
  32. ->raw(', ')
  33. ->repr($this->getAttribute('name'))
  34. ->raw("));\n\n")
  35. ;
  36. }
  37. }