`
tomhibolu
  • 浏览: 1383025 次
文章分类
社区版块
存档分类
最新评论

PHP 调试技术总结

 
阅读更多

1: 内置 API 输出调试
我们除了用echo,print,print_r, var_dump, var_export
1-1. debug_zval_dump 输出结果跟 var_dump 类似,唯一增加的一个值是 refcount,就是记录一个变量被引用了多少次,这是 php 的 copy on write (写时复制) 的机制的一个重要特点。
1-2. debug_print_backtrace 可以让我们查看整个程序的调用栈,用来查看瞬间函数调用栈,方便在出错时查看执行上下文.
2:错误控制和日志记录调试
2-1. Php.ini 配置中,跟错误相关的选项主要:error_reporting、display_errors、log_errors、error_log 等几个,这些选项在一般语法级别的调试是很有帮助的。
3.错误抛出和处理
3-1. 错误抛出和处理主要是说我们在程序中,能够自己触发错误,或者是自己截获处理错误,类似于面向对象编程里的异常处理 throw 抛出异常,catch 截获异常一个思路。
trigger_error、set_error_handler、set_exception_handler 这三个 api 主要就是处理错误抛出和处理内置函数。
4.FirePHP 调试
4-1.FirePHP 是一个附加在 firebug 上面的插件,用来调试 PHP,操作过程很简单。在 PHP 端使用 FirePHP
提供的 PHP 日志记录类库来输出调试信息, 在浏览器端使用 Firebug + FirePHP 来接收查看输出的调试信
息,这些调试信息会直接附加在返回的 HTTP 头信息里, 这些信息不会被浏览器直接显示, 只会在 firephp 获
取显示,有效的达到了调试和页面显示都不冲突的问题。(必须使用 firefox 浏览器)
5.IDE 调试
5-1.Vim,Zend Studio,Eclipse,NetBeans中调试功能
6.PHP 性能调试技术
6-1. 基本上使用 microtime() 这种计算时间的函数就能够来监测时间,如果使用 time() 之类的函数,统计
时间粒度就太粗了。
7.使用 Xdebug 进行性能分析
7-1 使用简单的时间统计,第一个需要在代码里增加时间点监控,比较麻烦,有时候我们需要看一段代码里那些函数调用是比较消耗时间的,单纯的使用时间控制就比较麻烦,这个时候,就可以使用 Xdebug 这种性
能分析工具了。
8.APD(Advanced PHP Debugger)
8-1.APD 是 Advanced PHP Debugger,即高级 PHP 调试器。是用来给 PHP 代码提供规划与纠错的能力,
以及提供了显示整个堆栈追踪的能力。APD 支持交互式纠错,但默认是将数据写入跟踪文件。它还提供了
基于事件的日志, 因此不同级别的信息 (包括函数调用, 参数传递,计时等)可以对个别的脚本打开或关闭。
9.使用 Xhprof 进行性能分析
一般情况下来说,大家都是使用 Xdebug,但是 Xdebug 太麻烦,需要各种配置,还有复杂的查看生成
的数据文件,并且 Xdebug 无法再线上使用,因为特别占用 CPU 资源,所以就诞生了 Xhprof。Xhprof 是
Facebook 开源出来的一个性能测试工具,它比较轻量级,它运行更轻便快速,输出的数据更容易查看。
10.PHP 单元测试技术
PHPUnit 是一个轻量级的 PHP 测试框架。它是在 PHP5 下面对 JUnit3 系列版本的完整移植,是 xUnit
测试框架家族的一员(它们都基于模式先锋 Kent Beck 的设计)。

分享到:
评论

相关推荐

    php调试技术手册

    资源名称:php调试技术手册内容简介:《PHP调试技术手册》主要是针对目前流行的各种PHP调试技术的一个实验和总结,所有调试方法都是在容易部署实现的基础来进行讲解,也希望对PHP开发者有一个系统的调试方法的归纳和...

    PHP调试技术手册

    《PHP调试技术手册》主要是针对目前流行的各种PHP调试技术的一个实验和总结,所有调试方法都是在容易部署实现的基础来进行讲解,也希望对PHP开发者有一个系统的调试方法的归纳和使用的帮助。

    PHP调试技术手册 1.0.rar

    《PHP调试技术手册》主要是针对目前流行的各种PHP调试技术的一个实验和总结,所有调试方法都是在容易部署实现的基础来进行讲解,也希望对PHP开发者有一个系统的调试方法的归纳和使用的帮助。 目录: 1 内置API输出...

    各种反调试技术原理与实例

    本人学习的总结,汇总归纳了各种反调试技术并提供了本人创作的各种反调试实例及源代码。 http://hi.baidu.com/tjt999 http://bbs.pediy.com/showthread.php?t=106143 反调试技术 2 发现OD的处理 2 1. 窗口类名、...

    PHP 程序员的调试技术小结

    简介 有许多 PHP 调试技术可以在编码的时候节约大量时间。一个有效却很基本的调试技术就是打开错误报告。另一个略微高级一点的技术包括使用 print 语句,通过显示在屏幕上实际出现的内容,有助于精确地找出更难发现...

    各种反调试技术原理与实例VC版

    本人学习的总结,汇总归纳了各种反调试技术并提供了本人创作的各种反调试实例及源代码。 http://hi.baidu.com/tjt999 http://bbs.pediy.com/showthread.php?t=106143 反调试技术 2 发现OD的处理 2 1. 窗口类名、...

    PHP网络编程技术与实践 源码

    1.6 本章小结 第2章 PHP的语法结构和常用函数 2.1 PHP语法基础 2.1.1 PHP的基本语法 2.1.2 PHP的数据类型 2.1.3 PHP的常量 2.1.4 PHP的变量 2.1.5 PHP的表达式 2.1.6 PHP的流程控制 2.2 PHP的数据存储处理 2.2.1 ...

    PHPWeb开发技术指南——pdf格式

    1.7 小结 22 第2章 高级语法 23 2.1 PHP语法 23 2.2 定义常量 24 2.3 数组函数 25 2.4 PHP和OOP 31 2.4.1 类:PHP 3.0和PHP 4.0的对比 35 2.4.2 执行类 36 2.4.3 读取对象 37 2.4.4 构造函数 38 2.4.5 继承 38 2.4.6...

    PHP网络编程技术与实践(源代码)

    1.6 本章小结 . .一直到第十八章 . 第18章 电子商务网站-网上购物系统 18.1 任务分析 18.1.1 用户登录 18.1.2 购物车 18.1.3 结算和完成购物 18.1.4 其他相关功能 18.1.5 管理员的操作界面 18.2 数据库的...

    PHP4.0 高级篇

    1.7 小结 22 第2章 高级语法 23 2.1 PHP语法 23 2.2 定义常量 24 2.3 数组函数 25 2.4 PHP和OOP 31 2.4.1 类:PHP 3.0和PHP 4.0的对比 35 2.4.2 执行类 36 2.4.3 读取对象 37 2.4.4 构造函数 38 2.4.5 继承 38 2.4.6...

    php网络开发完全手册

    1.7 小结 23 第2章 PHP的基础语法 24 2.1 语言构成与工作原理 24 2.2 常量与变量 25 2.2.1 常量的定义 25 2.2.2 变量的定义 26 2.2.3 变量的作用域 27 2.2.4 动态变量 29 2.3 运算符和关键字 29 2.4 流程控制语法 30...

    PHP程序开发范例宝典III

    个实例,每个实例都突出实用性,绝大部分实例都体现了PHP编程人员在实际项目开发过程中总结出的经验技巧。  《PHP程序开发范例宝典》内容充实,实例丰富,特别适于PHP编程人员和广大计算机爱好者学习开发使用,也...

    史上最全韩顺平传智播客PHP就业班视频,10月份全集

    数组使用细节② 数组运算符 数组作业评讲① 数组小结 8-24 1.回顾 8-24 2.选择排序 插入排序 快速排序 8-24 3.选择排序 插入排序 快速排序 8-24 4.顺序查找 二分查找 8-24 5.多维数组 数组作业评讲② 8-24 6.数组...

    史上最全韩顺平传智播客PHP就业班视频,9月份全集

    数组使用细节② 数组运算符 数组作业评讲① 数组小结 8-24 1.回顾 8-24 2.选择排序 插入排序 快速排序 8-24 3.选择排序 插入排序 快速排序 8-24 4.顺序查找 二分查找 8-24 5.多维数组 数组作业评讲② 8-24 6.数组...

    (全)传智播客PHP就业班视频完整课程

    数组使用细节② 数组运算符 数组作业评讲① 数组小结 8-24 1.回顾 8-24 2.选择排序 插入排序 快速排序 8-24 3.选择排序 插入排序 快速排序 8-24 4.顺序查找 二分查找 8-24 5.多维数组 数组作业评讲② 8-24 6.数组...

    史上最全传智播客PHP就业班视频课,8月份视频

    数组使用细节② 数组运算符 数组作业评讲① 数组小结 8-24 1.回顾 8-24 2.选择排序 插入排序 快速排序 8-24 3.选择排序 插入排序 快速排序 8-24 4.顺序查找 二分查找 8-24 5.多维数组 数组作业评讲② 8-24 6.数组...

    PHP和MySQL Web开发第4版pdf以及源码

    《php和mysql web开发(原书第4版)》:开发人员专业技术丛书。 目录 读者反馈 译者序 前言 作者简介 第一篇 使用PHP 第1章 PHP快速入门教程 1.1 开始之前:了解PHP 1.2 创建一个示例应用:Bob汽车零部件商店 ...

    PHP 中使用ajax时一些常见错误总结整理

    PHP作为后端时,前端js使用ajax技术进行相互信息传送时,经常会出错误,对于新手来说有些手足无措。总结错误、经验,以后随时回顾。 第一个问题,当前端无错误的情况下,页面调试也显示没有问题,但是ajax获取不到...

    PHP和MySQL WEB开发(第4版)

    5.3.3 理解字母大小写和函数名称 5.4 理解为什么要定义自己的函数 5.5 了解基本的函数结构 5.5.1 函数命名 5.6 使用参数 5.7 理解作用域 5.8 参数的引用传递和值传递 5.9 使用Return关键字 5.9.1 从函数返回一个值 ...

Global site tag (gtag.js) - Google Analytics