X-Git-Url: http://git.onelab.eu/?p=www-register-wizard.git;a=blobdiff_plain;f=libraries%2FProfiler.php;h=5e9fa8bf4c4e914b51459b2d799cff51344586e2;hp=7f869f46fefbd0d668bb9560756ce342e3d94a3d;hb=4afb2fe256f094a1caf6bff14f51c6a88938cc9f;hpb=6907967d36358724c676a7998f55fc34e40c3b21
diff --git a/libraries/Profiler.php b/libraries/Profiler.php
index 7f869f4..5e9fa8b 100644
--- a/libraries/Profiler.php
+++ b/libraries/Profiler.php
@@ -1,392 +1,392 @@
-CI =& get_instance();
- $this->CI->load->language('profiler');
- }
-
- // --------------------------------------------------------------------
-
- /**
- * Auto Profiler
- *
- * This function cycles through the entire array of mark points and
- * matches any two points that are named identically (ending in "_start"
- * and "_end" respectively). It then compiles the execution times for
- * all points and returns it as an array
- *
- * @access private
- * @return array
- */
- function _compile_benchmarks()
- {
- $profile = array();
- foreach ($this->CI->benchmark->marker as $key => $val)
- {
- // We match the "end" marker so that the list ends
- // up in the order that it was defined
- if (preg_match("/(.+?)_end/i", $key, $match))
- {
- if (isset($this->CI->benchmark->marker[$match[1].'_end']) AND isset($this->CI->benchmark->marker[$match[1].'_start']))
- {
- $profile[$match[1]] = $this->CI->benchmark->elapsed_time($match[1].'_start', $key);
- }
- }
- }
-
- // Build a table containing the profile data.
- // Note: At some point we should turn this into a template that can
- // be modified. We also might want to make this data available to be logged
-
- $output = "\n\n";
- $output .= '
';
- $output .= "\n";
- $output .= ' '.$this->CI->lang->line('profiler_benchmarks').' ';
- $output .= "\n";
- $output .= "\n\n\n";
-
- foreach ($profile as $key => $val)
- {
- $key = ucwords(str_replace(array('_', '-'), ' ', $key));
- $output .= "".$key." ".$val." \n";
- }
-
- $output .= "
\n";
- $output .= " ";
-
- return $output;
- }
-
- // --------------------------------------------------------------------
-
- /**
- * Compile Queries
- *
- * @access private
- * @return string
- */
- function _compile_queries()
- {
- $dbs = array();
-
- // Let's determine which databases are currently connected to
- foreach (get_object_vars($this->CI) as $CI_object)
- {
- if ( is_subclass_of(get_class($CI_object), 'CI_DB') )
- {
- $dbs[] = $CI_object;
- }
- }
-
- if (count($dbs) == 0)
- {
- $output = "\n\n";
- $output .= '';
- $output .= "\n";
- $output .= ' '.$this->CI->lang->line('profiler_queries').' ';
- $output .= "\n";
- $output .= "\n\n\n";
- $output .="".$this->CI->lang->line('profiler_no_db')." \n";
- $output .= "
\n";
- $output .= " ";
-
- return $output;
- }
-
- // Load the text helper so we can highlight the SQL
- $this->CI->load->helper('text');
-
- // Key words we want bolded
- $highlight = array('SELECT', 'DISTINCT', 'FROM', 'WHERE', 'AND', 'LEFT JOIN', 'ORDER BY', 'GROUP BY', 'LIMIT', 'INSERT', 'INTO', 'VALUES', 'UPDATE', 'OR', 'HAVING', 'OFFSET', 'NOT IN', 'IN', 'LIKE', 'NOT LIKE', 'COUNT', 'MAX', 'MIN', 'ON', 'AS', 'AVG', 'SUM', '(', ')');
-
- $output = "\n\n";
-
- foreach ($dbs as $db)
- {
- $output .= '';
- $output .= "\n";
- $output .= ' '.$this->CI->lang->line('profiler_database').': '.$db->database.' '.$this->CI->lang->line('profiler_queries').': '.count($this->CI->db->queries).' ';
- $output .= "\n";
- $output .= "\n\n\n";
-
- if (count($db->queries) == 0)
- {
- $output .= "".$this->CI->lang->line('profiler_no_queries')." \n";
- }
- else
- {
- foreach ($db->queries as $key => $val)
- {
- $time = number_format($db->query_times[$key], 4);
-
- $val = highlight_code($val, ENT_QUOTES);
-
- foreach ($highlight as $bold)
- {
- $val = str_replace($bold, ''.$bold.' ', $val);
- }
-
- $output .= "".$time." ".$val." \n";
- }
- }
-
- $output .= "
\n";
- $output .= " ";
-
- }
-
- return $output;
- }
-
-
- // --------------------------------------------------------------------
-
- /**
- * Compile $_GET Data
- *
- * @access private
- * @return string
- */
- function _compile_get()
- {
- $output = "\n\n";
- $output .= '';
- $output .= "\n";
- $output .= ' '.$this->CI->lang->line('profiler_get_data').' ';
- $output .= "\n";
-
- if (count($_GET) == 0)
- {
- $output .= "".$this->CI->lang->line('profiler_no_get')."
";
- }
- else
- {
- $output .= "\n\n\n";
-
- foreach ($_GET as $key => $val)
- {
- if ( ! is_numeric($key))
- {
- $key = "'".$key."'";
- }
-
- $output .= "$_GET[".$key."] ";
- if (is_array($val))
- {
- $output .= "" . htmlspecialchars(stripslashes(print_r($val, true))) . " ";
- }
- else
- {
- $output .= htmlspecialchars(stripslashes($val));
- }
- $output .= " \n";
- }
-
- $output .= "
\n";
- }
- $output .= " ";
-
- return $output;
- }
-
- // --------------------------------------------------------------------
-
- /**
- * Compile $_POST Data
- *
- * @access private
- * @return string
- */
- function _compile_post()
- {
- $output = "\n\n";
- $output .= '';
- $output .= "\n";
- $output .= ' '.$this->CI->lang->line('profiler_post_data').' ';
- $output .= "\n";
-
- if (count($_POST) == 0)
- {
- $output .= "".$this->CI->lang->line('profiler_no_post')."
";
- }
- else
- {
- $output .= "\n\n\n";
-
- foreach ($_POST as $key => $val)
- {
- if ( ! is_numeric($key))
- {
- $key = "'".$key."'";
- }
-
- $output .= "$_POST[".$key."] ";
- if (is_array($val))
- {
- $output .= "" . htmlspecialchars(stripslashes(print_r($val, true))) . " ";
- }
- else
- {
- $output .= htmlspecialchars(stripslashes($val));
- }
- $output .= " \n";
- }
-
- $output .= "
\n";
- }
- $output .= " ";
-
- return $output;
- }
-
- // --------------------------------------------------------------------
-
- /**
- * Show query string
- *
- * @access private
- * @return string
- */
- function _compile_uri_string()
- {
- $output = "\n\n";
- $output .= '';
- $output .= "\n";
- $output .= ' '.$this->CI->lang->line('profiler_uri_string').' ';
- $output .= "\n";
-
- if ($this->CI->uri->uri_string == '')
- {
- $output .= "".$this->CI->lang->line('profiler_no_uri')."
";
- }
- else
- {
- $output .= "".$this->CI->uri->uri_string."
";
- }
-
- $output .= " ";
-
- return $output;
- }
-
- // --------------------------------------------------------------------
-
- /**
- * Show the controller and function that were called
- *
- * @access private
- * @return string
- */
- function _compile_controller_info()
- {
- $output = "\n\n";
- $output .= '';
- $output .= "\n";
- $output .= ' '.$this->CI->lang->line('profiler_controller_info').' ';
- $output .= "\n";
-
- $output .= "".$this->CI->router->fetch_class()."/".$this->CI->router->fetch_method()."
";
-
-
- $output .= " ";
-
- return $output;
- }
- // --------------------------------------------------------------------
-
- /**
- * Compile memory usage
- *
- * Display total used memory
- *
- * @access public
- * @return string
- */
- function _compile_memory_usage()
- {
- $output = "\n\n";
- $output .= '';
- $output .= "\n";
- $output .= ' '.$this->CI->lang->line('profiler_memory_usage').' ';
- $output .= "\n";
-
- if (function_exists('memory_get_usage') && ($usage = memory_get_usage()) != '')
- {
- $output .= "".number_format($usage).' bytes
';
- }
- else
- {
- $output .= "".$this->CI->lang->line('profiler_no_memory_usage')."
";
- }
-
- $output .= " ";
-
- return $output;
- }
-
- // --------------------------------------------------------------------
-
- /**
- * Run the Profiler
- *
- * @access private
- * @return string
- */
- function run()
- {
- $output = "";
-
- $output .= $this->_compile_uri_string();
- $output .= $this->_compile_controller_info();
- $output .= $this->_compile_memory_usage();
- $output .= $this->_compile_benchmarks();
- $output .= $this->_compile_get();
- $output .= $this->_compile_post();
- $output .= $this->_compile_queries();
-
- $output .= '
';
-
- return $output;
- }
-
-}
-
-// END CI_Profiler class
-
-/* End of file Profiler.php */
+CI =& get_instance();
+ $this->CI->load->language('profiler');
+ }
+
+ // --------------------------------------------------------------------
+
+ /**
+ * Auto Profiler
+ *
+ * This function cycles through the entire array of mark points and
+ * matches any two points that are named identically (ending in "_start"
+ * and "_end" respectively). It then compiles the execution times for
+ * all points and returns it as an array
+ *
+ * @access private
+ * @return array
+ */
+ function _compile_benchmarks()
+ {
+ $profile = array();
+ foreach ($this->CI->benchmark->marker as $key => $val)
+ {
+ // We match the "end" marker so that the list ends
+ // up in the order that it was defined
+ if (preg_match("/(.+?)_end/i", $key, $match))
+ {
+ if (isset($this->CI->benchmark->marker[$match[1].'_end']) AND isset($this->CI->benchmark->marker[$match[1].'_start']))
+ {
+ $profile[$match[1]] = $this->CI->benchmark->elapsed_time($match[1].'_start', $key);
+ }
+ }
+ }
+
+ // Build a table containing the profile data.
+ // Note: At some point we should turn this into a template that can
+ // be modified. We also might want to make this data available to be logged
+
+ $output = "\n\n";
+ $output .= '';
+ $output .= "\n";
+ $output .= ' '.$this->CI->lang->line('profiler_benchmarks').' ';
+ $output .= "\n";
+ $output .= "\n\n\n";
+
+ foreach ($profile as $key => $val)
+ {
+ $key = ucwords(str_replace(array('_', '-'), ' ', $key));
+ $output .= "".$key." ".$val." \n";
+ }
+
+ $output .= "
\n";
+ $output .= " ";
+
+ return $output;
+ }
+
+ // --------------------------------------------------------------------
+
+ /**
+ * Compile Queries
+ *
+ * @access private
+ * @return string
+ */
+ function _compile_queries()
+ {
+ $dbs = array();
+
+ // Let's determine which databases are currently connected to
+ foreach (get_object_vars($this->CI) as $CI_object)
+ {
+ if ( is_subclass_of(get_class($CI_object), 'CI_DB') )
+ {
+ $dbs[] = $CI_object;
+ }
+ }
+
+ if (count($dbs) == 0)
+ {
+ $output = "\n\n";
+ $output .= '';
+ $output .= "\n";
+ $output .= ' '.$this->CI->lang->line('profiler_queries').' ';
+ $output .= "\n";
+ $output .= "\n\n\n";
+ $output .="".$this->CI->lang->line('profiler_no_db')." \n";
+ $output .= "
\n";
+ $output .= " ";
+
+ return $output;
+ }
+
+ // Load the text helper so we can highlight the SQL
+ $this->CI->load->helper('text');
+
+ // Key words we want bolded
+ $highlight = array('SELECT', 'DISTINCT', 'FROM', 'WHERE', 'AND', 'LEFT JOIN', 'ORDER BY', 'GROUP BY', 'LIMIT', 'INSERT', 'INTO', 'VALUES', 'UPDATE', 'OR', 'HAVING', 'OFFSET', 'NOT IN', 'IN', 'LIKE', 'NOT LIKE', 'COUNT', 'MAX', 'MIN', 'ON', 'AS', 'AVG', 'SUM', '(', ')');
+
+ $output = "\n\n";
+
+ foreach ($dbs as $db)
+ {
+ $output .= '';
+ $output .= "\n";
+ $output .= ' '.$this->CI->lang->line('profiler_database').': '.$db->database.' '.$this->CI->lang->line('profiler_queries').': '.count($this->CI->db->queries).' ';
+ $output .= "\n";
+ $output .= "\n\n\n";
+
+ if (count($db->queries) == 0)
+ {
+ $output .= "".$this->CI->lang->line('profiler_no_queries')." \n";
+ }
+ else
+ {
+ foreach ($db->queries as $key => $val)
+ {
+ $time = number_format($db->query_times[$key], 4);
+
+ $val = highlight_code($val, ENT_QUOTES);
+
+ foreach ($highlight as $bold)
+ {
+ $val = str_replace($bold, ''.$bold.' ', $val);
+ }
+
+ $output .= "".$time." ".$val." \n";
+ }
+ }
+
+ $output .= "
\n";
+ $output .= " ";
+
+ }
+
+ return $output;
+ }
+
+
+ // --------------------------------------------------------------------
+
+ /**
+ * Compile $_GET Data
+ *
+ * @access private
+ * @return string
+ */
+ function _compile_get()
+ {
+ $output = "\n\n";
+ $output .= '';
+ $output .= "\n";
+ $output .= ' '.$this->CI->lang->line('profiler_get_data').' ';
+ $output .= "\n";
+
+ if (count($_GET) == 0)
+ {
+ $output .= "".$this->CI->lang->line('profiler_no_get')."
";
+ }
+ else
+ {
+ $output .= "\n\n\n";
+
+ foreach ($_GET as $key => $val)
+ {
+ if ( ! is_numeric($key))
+ {
+ $key = "'".$key."'";
+ }
+
+ $output .= "$_GET[".$key."] ";
+ if (is_array($val))
+ {
+ $output .= "" . htmlspecialchars(stripslashes(print_r($val, true))) . " ";
+ }
+ else
+ {
+ $output .= htmlspecialchars(stripslashes($val));
+ }
+ $output .= " \n";
+ }
+
+ $output .= "
\n";
+ }
+ $output .= " ";
+
+ return $output;
+ }
+
+ // --------------------------------------------------------------------
+
+ /**
+ * Compile $_POST Data
+ *
+ * @access private
+ * @return string
+ */
+ function _compile_post()
+ {
+ $output = "\n\n";
+ $output .= '';
+ $output .= "\n";
+ $output .= ' '.$this->CI->lang->line('profiler_post_data').' ';
+ $output .= "\n";
+
+ if (count($_POST) == 0)
+ {
+ $output .= "".$this->CI->lang->line('profiler_no_post')."
";
+ }
+ else
+ {
+ $output .= "\n\n\n";
+
+ foreach ($_POST as $key => $val)
+ {
+ if ( ! is_numeric($key))
+ {
+ $key = "'".$key."'";
+ }
+
+ $output .= "$_POST[".$key."] ";
+ if (is_array($val))
+ {
+ $output .= "" . htmlspecialchars(stripslashes(print_r($val, true))) . " ";
+ }
+ else
+ {
+ $output .= htmlspecialchars(stripslashes($val));
+ }
+ $output .= " \n";
+ }
+
+ $output .= "
\n";
+ }
+ $output .= " ";
+
+ return $output;
+ }
+
+ // --------------------------------------------------------------------
+
+ /**
+ * Show query string
+ *
+ * @access private
+ * @return string
+ */
+ function _compile_uri_string()
+ {
+ $output = "\n\n";
+ $output .= '';
+ $output .= "\n";
+ $output .= ' '.$this->CI->lang->line('profiler_uri_string').' ';
+ $output .= "\n";
+
+ if ($this->CI->uri->uri_string == '')
+ {
+ $output .= "".$this->CI->lang->line('profiler_no_uri')."
";
+ }
+ else
+ {
+ $output .= "".$this->CI->uri->uri_string."
";
+ }
+
+ $output .= " ";
+
+ return $output;
+ }
+
+ // --------------------------------------------------------------------
+
+ /**
+ * Show the controller and function that were called
+ *
+ * @access private
+ * @return string
+ */
+ function _compile_controller_info()
+ {
+ $output = "\n\n";
+ $output .= '';
+ $output .= "\n";
+ $output .= ' '.$this->CI->lang->line('profiler_controller_info').' ';
+ $output .= "\n";
+
+ $output .= "".$this->CI->router->fetch_class()."/".$this->CI->router->fetch_method()."
";
+
+
+ $output .= " ";
+
+ return $output;
+ }
+ // --------------------------------------------------------------------
+
+ /**
+ * Compile memory usage
+ *
+ * Display total used memory
+ *
+ * @access public
+ * @return string
+ */
+ function _compile_memory_usage()
+ {
+ $output = "\n\n";
+ $output .= '';
+ $output .= "\n";
+ $output .= ' '.$this->CI->lang->line('profiler_memory_usage').' ';
+ $output .= "\n";
+
+ if (function_exists('memory_get_usage') && ($usage = memory_get_usage()) != '')
+ {
+ $output .= "".number_format($usage).' bytes
';
+ }
+ else
+ {
+ $output .= "".$this->CI->lang->line('profiler_no_memory_usage')."
";
+ }
+
+ $output .= " ";
+
+ return $output;
+ }
+
+ // --------------------------------------------------------------------
+
+ /**
+ * Run the Profiler
+ *
+ * @access private
+ * @return string
+ */
+ function run()
+ {
+ $output = "";
+
+ $output .= $this->_compile_uri_string();
+ $output .= $this->_compile_controller_info();
+ $output .= $this->_compile_memory_usage();
+ $output .= $this->_compile_benchmarks();
+ $output .= $this->_compile_get();
+ $output .= $this->_compile_post();
+ $output .= $this->_compile_queries();
+
+ $output .= '
';
+
+ return $output;
+ }
+
+}
+
+// END CI_Profiler class
+
+/* End of file Profiler.php */
/* Location: ./system/libraries/Profiler.php */
\ No newline at end of file