摘要:单击此按钮可暂停程序执行。单击此按钮,通过标准关闭脚本从外部终止当前进程。实际上,插入符号处的当前行有一个临时断点集,一旦程序执行暂停,就会删除它。心中始终十分抗拒,导致功能变更延期。
介绍
在 上一期 中我们已经把 xdebug 和 phpstorm 的关联配置设置好了,接下来我将会深入的介绍 debug 的运用。分为3点内容
快速找到错误的原因
辅助读懂比效复杂的代码
代码重构
环境说明windows
vagrant+vbox+centos7+nginx+php
phpstorm
学前准备xdebug + phpstorm 调试环境已经可以正常运行
调试跳转图标 | 描述 |
---|---|
当当前应用程序停止时,单击此按钮再次调试。 | |
单击此按钮可暂停程序执行。 | |
单击此按钮,通过标准关闭脚本从外部终止当前进程。 | |
单击此按钮以打开断点对话框,您可以在其中配置断点行为。 | |
使用此按钮切换断点状态。 | |
单击此按钮以突出显示编辑器中的当前执行点,并在框架窗格中显示相应的堆栈框架。 | |
单击此按钮执行程序,直到当前方法或文件中的下一行,跳过在当前执行点引用的方法(如果有的话)。如果当前行是方法中的最后一行,则执行步骤到在此方法之后执行的行。 | |
f7单击此按钮,使调试器步骤进入在当前执行点调用的方法。 | |
单击此按钮,调试器将从当前方法中退出,并立即执行该行。 | |
单击此按钮恢复程序执行并暂停,直到执行点到达编辑器中当前游标位置的行。不需要断点。实际上,插入符号处的当前行有一个临时断点集,一旦程序执行暂停,就会删除它。因此,如果插入符号位于已经执行的行上,则程序将重新开始执行,因为无法回滚到以前的断点。当您深入到方法序列中并需要st时,这个操作特别有用 |
在开发中我们经常会碰到很多 bug。一般有以下几种
php 语言报错
报错时,我们应该先看下报错内容,这很重要,他可以让你知道你的代码错那里了。一般会返回给你错误是那一行,环境装了 xdebug 后还会显示错误的地址运行时经过了那些文件,那些方法
写数据库操作失灵
这个错误难度就高了些。因为你需要了解当前业务需要改那些数据表。操作过后那张表的数据漏了。这个操作你有没有写。虽然说只要自己了解业务就可以不用调试也可以快速解决,但是传参或返回很复杂。那这个就很适合了
辅助读懂比效复杂的代码工作中并不是全都是自己使用框架开发,有时还会为了进度使用一些开源的项目(ecshop,dedecms)。也可能是前同事遗留的代码。自己写的东西很容易看懂,但是看别人的东西,如果写的不好那绝对是恶梦。你会在看都不想看,心里在吐槽代码不合理的地方。心中始终十分抗拒,导致功能变更延期。
复杂的代码只需要知道它会接收什么参数,返回什么东西就可以了。如果不是很重要完全可以不看它内部的内容。把它隔离开来。
学习技术超前的代码运行逻辑。那就需要进行断点调试了。
代码重构代码重构是维护一个写的很烂的项目必需经历的过程。重构的核心也是知道指定的方法有那些改变,或把它拆分出来。或把它整合到一块。
断点查看原逻辑有那些操作,记录下来,如果不是算法,主要记录的还是数据表操作
每个操作都有传参和返回,在调试模式下我们很容易就知道访问方法前环境中有那些参数可供使用
重构完后,可以使用相同的请求参数来访问重构代码。结果一致就为重构完成了
系列文章xdebug的安装配置
xdebug的实际运用 [本篇]
xdebug性能分析
FQA文章字太多了,不想看
我的文章有对应的视频,你可以通过视频来进行学习这一期的内容。
但是你不要吐槽我语言表达能力和普通话,因为我平时也不怎么说话,想练习口才才做的视频。附上 链接
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/29382.html
摘要:生成性能分析文件,再通过分析软件进行查看性能结果。性能分析工具详解我们通过打开性能分析文件打头的文件。可以很好的区分性能分析文件。 介绍 在上两期中我已经对 xdebug 最核心的操作已经进行了讲解。相信你可以摆脱写 var_dump($data);die; 的编写和完成调试后的清除了。这一期我们来学习xdebug的第二个特色-性能分析。这一个功能,在实操中用的不是很多。 使用场景: ...
摘要:当我在官网看到了远程调试原理图时,我才知道应该怎么配置。配置的参数也少了很多,也不需要在里对一个个请求地址进行配置。其他可以配置可以共用。但是如果你使用的是本地的那他就会出现端口被占用的情况。 介绍 我之前配置直接按网上的文章进行配置总是配置不成功,里面很多东西不了解。当我在 xdebug 官网看到了 xdebug 远程调试原理图时,我才知道应该怎么配置 xdebug。配置的参数也少了...
摘要:目前有两种流行的调试器,我在学习和研究过程中,发现网上的各种信息过于凌乱,感到痛苦,影响理解和使用。脚本在运行时,由插件向发起连接,将调试信息发送给,并通过协议进行互动。这种模式的缺陷是配死了目标,不能支持多用户调试。 > 工欲善其事必先利其器,学习一门新语言,调试器的使用必不可少,本文分享一下PHP调试器的使用。 PHP目前有两种流行的调试器, Xdebug Zend Debugg...
摘要:地址这是一份适用于生产和开发环境的。目前已经在我司的生产环境上并运行良好。日常开发中也是基于此镜像进行的。如果想快速看看镜像里有啥东西,只需要运行其中替换成你实际的镜像。开发环境的使用单独运行这个容器是没有意义的。 GITHUB地址:https://github.com/banyancheu... 这是一份适用于生产和开发环境的 Dockerfile。 在 phuison/baseim...
阅读 2882·2021-09-26 10:18
阅读 5126·2021-09-22 15:02
阅读 2746·2019-08-30 15:53
阅读 1820·2019-08-29 18:41
阅读 2670·2019-08-27 10:58
阅读 2606·2019-08-26 13:49
阅读 2725·2019-08-26 12:17
阅读 886·2019-08-26 11:49