debug.init.php 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. <?php
  2. if (!defined('IS_INITPHP')) exit('Access Denied!');
  3. /*********************************************************************************
  4. * InitPHP 3.8.1 国产PHP开发框架 - 工具库-debug调试
  5. *-------------------------------------------------------------------------------
  6. * 版权所有: CopyRight By initphp.com
  7. * 您可以自由使用该源码,但是在使用过程中,请保留作者信息。尊重他人劳动成果就是尊重自己
  8. *-------------------------------------------------------------------------------
  9. * Author:zhuli Dtime:2014-11-25
  10. ***********************************************************************************/
  11. class debugInit {
  12. public static $mark_arr = array(); //存放时间的静态变量
  13. /**
  14. * debug-BUG调试工具-打印出信息
  15. * 使用方法:$this->getUtil('debug')->dump($data, $isexit = 0)
  16. * @param string $data 参数
  17. * @param int $isexit 是否跳出
  18. * @return
  19. */
  20. public function dump($data, $isexit = 0) {
  21. ob_start();
  22. var_dump($data);
  23. $output = ob_get_clean();
  24. if (!extension_loaded('xdebug')) {
  25. $output = preg_replace('/\]\=\>\n(\s+)/m', '] => ', $output);
  26. $output = '<pre>' . $label . htmlspecialchars($output, ENT_QUOTES) . '</pre>';
  27. }
  28. echo $output;
  29. if ($isexit) exit();
  30. }
  31. /**
  32. * debug-BUG调试工具-程序标记
  33. * 使用方法:$this->getUtil('debug')->mark($name)
  34. * @param string $name 开始和结束时间的标记名称
  35. * @return
  36. */
  37. public function mark($name) {
  38. self::$mark_arr['time'][$name][] = microtime(TRUE);
  39. self::$mark_arr['memory'][$name][] = memory_get_usage();
  40. return self::$mark_arr;
  41. }
  42. /**
  43. * debug-BUG调试工具-计算程序段使用的时间
  44. * 使用方法:$this->getUtil('debug')->use_time($name, $decimal = 6)
  45. * @param string $name 开始和结束时间的标记名称
  46. * @param string $decimal 小数位数
  47. * @return
  48. */
  49. public function use_time($name, $decimal = 6) {
  50. if (!isset(self::$mark_arr['time'][$name][1])) {
  51. self::$mark_arr['time'][$name][1] = microtime(TRUE);
  52. }
  53. return number_format(self::$mark_arr['time'][$name][1] - self::$mark_arr['time'][$name][0], $decimal);
  54. }
  55. /**
  56. * debug-BUG调试工具-计算程序段计算内存使用峰值
  57. * 使用方法:$this->getUtil('debug')->use_memory($name)
  58. * @param string $name 开始和结束时间的标记名称
  59. * @return
  60. */
  61. public function use_memory($name) {
  62. if (!isset(self::$mark_arr['memory'][$name][1])) {
  63. self::$mark_arr['memory'][$name][1] = memory_get_usage();
  64. }
  65. return number_format(self::$mark_arr['memory'][$name][1] - self::$mark_arr['memory'][$name][0]);
  66. }
  67. }