]> git.andy128k.dev Git - ipf-template.git/commitdiff
SQL Profiler
authoravl <alex.litovchenko@gmail.com>
Fri, 29 Aug 2008 02:42:47 +0000 (04:42 +0200)
committeravl <alex.litovchenko@gmail.com>
Fri, 29 Aug 2008 02:42:47 +0000 (04:42 +0200)
ipf/template/tag/sql.php [new file with mode: 0644]

diff --git a/ipf/template/tag/sql.php b/ipf/template/tag/sql.php
new file mode 100644 (file)
index 0000000..9251fce
--- /dev/null
@@ -0,0 +1,28 @@
+<?php
+
+class IPF_Template_Tag_Sql extends IPF_Template_Tag
+{
+    function start()
+    {
+        $profiler = IPF_Project::getInstance()->sqlProfiler;
+        if ($profiler!==null){
+            echo '<div style="padding:10px; margin:10px; background:#eee; border:1px dashed #888;"><h3>Sql Debug</h3><div style="color:#888">set <i>debug</i> to false in settings project for disable sql profiler</div>';
+            $time = 0;
+            foreach ($profiler as $event) {
+                $time += $event->getElapsedSecs();
+                $name = $event->getName();
+                if ($name=='fetch' || $name=='prepare' || $name=='connect')
+                    continue;
+                echo "<br>\n<b>" . $name . "</b> " . sprintf("%f", $event->getElapsedSecs()) . "<br>\n";
+                echo $event->getQuery() . "<br>\n";
+                $params = $event->getParams();
+                if( ! empty($params)) {
+                    var_dump($params);
+                    print "<br>\n";
+                }
+            }
+            echo "<br>\n<b>Total time:</b> " . $time  . " (without prepare and fetch event)<br>\n";
+            echo '</div>';
+        }
+    }
+}