2024-06-20 14:10:42 +00:00
< ? php
/*
* This file is part of Twig .
*
* ( c ) Fabien Potencier
*
* For the full copyright and license information , please view the LICENSE
* file that was distributed with this source code .
*/
namespace Twig\Profiler\Node ;
use Twig\Attribute\YieldReady ;
use Twig\Compiler ;
use Twig\Node\Node ;
/**
* Represents a profile enter node .
*
* @ author Fabien Potencier < fabien @ symfony . com >
*/
#[YieldReady]
class EnterProfileNode extends Node
{
public function __construct ( string $extensionName , string $type , string $name , string $varName )
{
parent :: __construct ([], [ 'extension_name' => $extensionName , 'name' => $name , 'type' => $type , 'var_name' => $varName ]);
}
public function compile ( Compiler $compiler ) : void
{
$compiler
2024-09-05 17:51:48 +00:00
-> write ( \sprintf ( '$%s = $this->extensions[' , $this -> getAttribute ( 'var_name' )))
2024-06-20 14:10:42 +00:00
-> repr ( $this -> getAttribute ( 'extension_name' ))
-> raw ( " ]; \n " )
2024-09-05 17:51:48 +00:00
-> write ( \sprintf ( '$%s->enter($%s = new \Twig\Profiler\Profile($this->getTemplateName(), ' , $this -> getAttribute ( 'var_name' ), $this -> getAttribute ( 'var_name' ) . '_prof' ))
2024-06-20 14:10:42 +00:00
-> repr ( $this -> getAttribute ( 'type' ))
-> raw ( ', ' )
-> repr ( $this -> getAttribute ( 'name' ))
-> raw ( " )); \n \n " )
;
}
}