diff options
Diffstat (limited to 'inc/lib/Twig/Extension/Profiler.php')
| -rw-r--r-- | inc/lib/Twig/Extension/Profiler.php | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/inc/lib/Twig/Extension/Profiler.php b/inc/lib/Twig/Extension/Profiler.php new file mode 100644 index 00000000..fcfc002b --- /dev/null +++ b/inc/lib/Twig/Extension/Profiler.php @@ -0,0 +1,49 @@ +<?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. + */ + +class Twig_Extension_Profiler extends Twig_Extension +{ + private $actives = array(); + + public function __construct(Twig_Profiler_Profile $profile) + { + $this->actives[] = $profile; + } + + public function enter(Twig_Profiler_Profile $profile) + { + $this->actives[0]->addProfile($profile); + array_unshift($this->actives, $profile); + } + + public function leave(Twig_Profiler_Profile $profile) + { + $profile->leave(); + array_shift($this->actives); + + if (1 === count($this->actives)) { + $this->actives[0]->leave(); + } + } + + public function getNodeVisitors() + { + return array(new Twig_Profiler_NodeVisitor_Profiler(get_class($this))); + } + + public function getName() + { + return 'profiler'; + } +} + +class_alias('Twig_Extension_Profiler', 'Twig\Extension\ProfilerExtension', false); +class_exists('Twig_Profiler_Profile'); |
