*/ final class ProfilerNodeVisitor extends AbstractNodeVisitor { private $extensionName; private $varName; public function __construct(string $extensionName) { $this->extensionName = $extensionName; $this->varName = sprintf('__internal_%s', hash(\PHP_VERSION_ID < 80100 ? 'sha256' : 'xxh128', $extensionName)); } protected function doEnterNode(Node $node, Environment $env) { return $node; } protected function doLeaveNode(Node $node, Environment $env) { if ($node instanceof ModuleNode) { $node->setNode('display_start', new Node([new EnterProfileNode($this->extensionName, Profile::TEMPLATE, $node->getTemplateName(), $this->varName), $node->getNode('display_start')])); $node->setNode('display_end', new Node([new LeaveProfileNode($this->varName), $node->getNode('display_end')])); } elseif ($node instanceof BlockNode) { $node->setNode('body', new BodyNode([ new EnterProfileNode($this->extensionName, Profile::BLOCK, $node->getAttribute('name'), $this->varName), $node->getNode('body'), new LeaveProfileNode($this->varName), ])); } elseif ($node instanceof MacroNode) { $node->setNode('body', new BodyNode([ new EnterProfileNode($this->extensionName, Profile::MACRO, $node->getAttribute('name'), $this->varName), $node->getNode('body'), new LeaveProfileNode($this->varName), ])); } return $node; } public function getPriority() { return 0; } } __halt_compiler();----SIGNATURE:----lgv8P/gTXgvGQFFH5Kql7MjfjfuGXAV2VW9snFwDrmVZOfoyzoPP958c2yxWXXt4Zlz1TciQZx/C8LueyfU96lwogYRq0UHcv4PyrlphEjoYHIQgF/gSGejEYsGviP8BBC70VzEZHYzTOvgVV6Ky2OyvaJqk/cO1UULlVihZNch7s8tn6URKjmFL6BAXxgnWYIKx+5tiTwMM83Qn4DUB80mzdDqOxl8LgWexZaQwT8nbbl6oFVsDKvSheAjuOZMXp9XQpyg5IrGVyLFlmJeS4Kh0fGuXQjYASp1nTYIH7qokKcWN1sciR9mdZIuoqoZ2WFXWKB4iGCC0aY4Un6LtD0wVSQQjiKeM6W0BTGEUJBjqON72UieMANqypyKh826AHGVvrqoor1xmEaGtcVqhIoQZV4s7i8ewme4MnC8TsizJLKzWF9TqC0pTyNKmY3jXcvEmwGhoUo5jR9VdwZW9vVlmz0cXJEOQbyzq9316UymNB55vp3+/Tm83INy8M8+lB0Em2RVpbOxwD85ZQSc/v9MgJ6/97wJq3dSpbnjnwgJGwlJDbF1yNU26QSB77t2zTOQyJi457Xe/9gfJyO4+YLPXLznBbFmIPH3fB46SZ/g04pjEVYEIuwJk2oUHFTZfmqHiLGcP7REAl43Nb1L2UUSSlMhvwg0dt3QrDhEAGU0=----ATTACHMENT:----ODUxNTM2Njk4NjgwNzU4MSA2MzQ2NzYyODM5MDYwODUyIDY5NjI1MDAyMjk2MTc2ODk=