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 12namespace Twig\Profiler\Node; 13 14use Twig\Compiler; 15use Twig\Node\Node; 16 17/** 18 * Represents a profile enter node. 19 * 20 * @author Fabien Potencier <fabien@symfony.com> 21 */ 22class EnterProfileNode extends Node 23{ 24 public function __construct(string $extensionName, string $type, string $name, string $varName) 25 { 26 parent::__construct([], ['extension_name' => $extensionName, 'name' => $name, 'type' => $type, 'var_name' => $varName]); 27 } 28 29 public function compile(Compiler $compiler) 30 { 31 $compiler 32 ->write(sprintf('$%s = $this->extensions[', $this->getAttribute('var_name'))) 33 ->repr($this->getAttribute('extension_name')) 34 ->raw("];\n") 35 ->write(sprintf('$%s->enter($%s = new \Twig\Profiler\Profile($this->getTemplateName(), ', $this->getAttribute('var_name'), $this->getAttribute('var_name').'_prof')) 36 ->repr($this->getAttribute('type')) 37 ->raw(', ') 38 ->repr($this->getAttribute('name')) 39 ->raw("));\n\n") 40 ; 41 } 42} 43 44class_alias('Twig\Profiler\Node\EnterProfileNode', 'Twig_Profiler_Node_EnterProfile'); 45