PageRenderTime 45ms CodeModel.GetById 19ms RepoModel.GetById 1ms app.codeStats 0ms

/fuel/core/vendor/phpquickprofiler/console.php

https://bitbucket.org/sriedel/iccrm-wip
PHP | 98 lines | 55 code | 16 blank | 27 comment | 2 complexity | c853919722acd917c3862685b20ec19d MD5 | raw file
Possible License(s): MIT
  1. <?php
  2. /* - - - - - - - - - - - - - - - - - - - - -
  3. Title : PHP Quick Profiler Console Class
  4. Author : Created by Ryan Campbell
  5. URL : http://particletree.com
  6. Last Updated : April 26, 2009
  7. Description : This class serves as a wrapper around a global
  8. php variable, pqp_logs, that we have created.
  9. - - - - - - - - - - - - - - - - - - - - - */
  10. class Console {
  11. public static function init() {
  12. $GLOBALS['pqp_logs'] = array(
  13. 'console' => array(),
  14. 'logCount' => 0,
  15. 'memoryCount' => 0,
  16. 'errorCount' => 0,
  17. 'speedCount' => 0);
  18. }
  19. /*-----------------------------------
  20. LOG A VARIABLE TO CONSOLE
  21. ------------------------------------*/
  22. public static function log($data) {
  23. $logItem = array(
  24. "data" => $data,
  25. "type" => 'log'
  26. );
  27. self::addToConsoleAndIncrement('logCount', $logItem);
  28. }
  29. /*---------------------------------------------------
  30. LOG MEMORY USAGE OF VARIABLE OR ENTIRE SCRIPT
  31. -----------------------------------------------------*/
  32. public static function logMemory($object = false, $name = 'Memory Usage') {
  33. $memory = ($object and ! $object instanceOf \Controller) ? strlen(serialize($object)) : memory_get_usage();
  34. $logItem = array(
  35. "data" => $memory,
  36. "type" => 'memory',
  37. "name" => $name,
  38. "dataType" => gettype($object)
  39. );
  40. self::addToConsoleAndIncrement('memoryCount', $logItem);
  41. }
  42. /*-----------------------------------
  43. LOG A PHP EXCEPTION OBJECT
  44. ------------------------------------*/
  45. public static function logError($exception, $message) {
  46. $logItem = array(
  47. "data" => $message,
  48. "type" => 'error',
  49. "file" => $exception->getFile(),
  50. "line" => $exception->getLine()
  51. );
  52. self::addToConsoleAndIncrement('errorCount', $logItem);
  53. }
  54. /*------------------------------------
  55. POINT IN TIME SPEED SNAPSHOT
  56. -------------------------------------*/
  57. public static function logSpeed($name = 'Point in Time') {
  58. $logItem = array(
  59. "data" => PhpQuickProfiler::getMicroTime(),
  60. "type" => 'speed',
  61. "name" => $name
  62. );
  63. self::addToConsoleAndIncrement('speedCount', $logItem);
  64. }
  65. /*-----------------------------------
  66. RETURN & MODIFY LOGS
  67. ------------------------------------*/
  68. public static function addToConsoleAndIncrement($log, $item) {
  69. if(!isset($GLOBALS['pqp_logs'])) self::init();
  70. $GLOBALS['pqp_logs']['console'][] = $item;
  71. $GLOBALS['pqp_logs'][$log] += 1;
  72. }
  73. public static function getLogs() {
  74. if(!isset($GLOBALS['pqp_logs'])) self::init();
  75. return $GLOBALS['pqp_logs'];
  76. }
  77. }
  78. ?>