summaryrefslogtreecommitdiff
path: root/inc/lib/Twig/Extension/Profiler.php
diff options
context:
space:
mode:
Diffstat (limited to 'inc/lib/Twig/Extension/Profiler.php')
-rw-r--r--inc/lib/Twig/Extension/Profiler.php49
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');