Zend Framework Source Code Snippets

DB Profiler

Bookmark and Share
1
2
3
4
56
7
8
9
1011
12
13
14
1516
17
18
19
2021
22
23
24
2526
27
28
29
3031
32
33
34
3536
37
38
39
4041
42
43
44
45
<?php
class Zend_View_Helper_Profiler {
 
        private $view;
                public function profiler() {
                $db = Zend_Registry::get('db');
                
                $profiler = $db->getProfiler();
                                $totalTime    = $profiler->getTotalElapsedSecs();
                $queryCount   = $profiler->getTotalNumQueries();
                $longestTime  = 0;
                $longestQuery = null;
                                $queries = "";
                if ($profiler->getQueryProfiles() != null) {
                        foreach ($profiler->getQueryProfiles() as $query) {
                            if ($query->getElapsedSecs() > $longestTime) {
                                $longestTime  = $query->getElapsedSecs();                                $longestQuery = $query->getQuery();
                            } 
                            
                            $queries .= 'Query length: ' . round($query->getElapsedSecs(), 3) . " sec.<br />n";
                                $queries .= "Query: n" . $query->getQuery() . "<br />n";                                $queries .= "<br />n";
                        }
                        
                        $queryOut = 'Executed ' . $queryCount . ' queries in ' . round($totalTime, 3) . ' sec.' . "<br />n";
                        $queryOut .= 'Average query length: ' . round(($totalTime / $queryCount), 3) . ' sec.' . "<br />n";                        $queryOut .= 'Queries per second: ' . round(($queryCount / $totalTime),3) . "<br />n";
                        $queryOut .= 'Longest query length: ' . round($longestTime,3) . " sec.<br />n";
                        $queryOut .= "Longest query: n" . $longestQuery . "<br />n";
                        $queryOut .= "Queries: n" . $queries . "<br />n";
                }                                
                $out = '<div id="profiler" style="display:none">';
                if (isset($queryOut)) {
                        $out .= $queryOut;      
                }                $out .= "</div>";
                
                return $out;
        }
}

Comments

You must login before commenting on a snippet. If you do not have an account, please register.

Snippet description

View_Helper for Zend_Db's profiler

Snippet details

Created:
Denis Baklikov Denis Baklikov
2 years ago
Edited:
Denis Baklikov Denis Baklikov
2 years ago
Revision Id:
24
Edit Message:
Initial Release
Tags:
view_helper db profiler
Comments:
0
Views:
1439
Points:
0 (0 votes)

History

r24

Initial Release

Denis Baklikov Denis Baklikov
2 years ago