1

介绍

上一期 中我们已经把 xdebug 和 phpstorm 的关联配置设置好了,接下来我将会深入的介绍 debug 的运用。分为3点内容

  • 快速找到错误的原因
  • 辅助读懂比效复杂的代码
  • 代码重构

环境说明

  • windows
  • vagrant+vbox+centos7+nginx+php
  • phpstorm

学前准备

  1. xdebug + phpstorm 调试环境已经可以正常运行

调试跳转

图标 描述
Debug 当当前应用程序停止时,单击此按钮再次调试。
Pause Program 单击此按钮可暂停程序执行。
Stop 单击此按钮,通过标准关闭脚本从外部终止当前进程。
View Breakpoints 单击此按钮以打开断点对话框,您可以在其中配置断点行为。
Mute Breakpoints 使用此按钮切换断点状态。
Show Execution Point 单击此按钮以突出显示编辑器中的当前执行点,并在框架窗格中显示相应的堆栈框架。
Step Over 单击此按钮执行程序,直到当前方法或文件中的下一行,跳过在当前执行点引用的方法(如果有的话)。如果当前行是方法中的最后一行,则执行步骤到在此方法之后执行的行。
Step Into f7单击此按钮,使调试器步骤进入在当前执行点调用的方法。
    Step Out 单击此按钮,调试器将从当前方法中退出,并立即执行该行。
Run to Cursor 单击此按钮恢复程序执行并暂停,直到执行点到达编辑器中当前游标位置的行。不需要断点。实际上,插入符号处的当前行有一个临时断点集,一旦程序执行暂停,就会删除它。因此,如果插入符号位于已经执行的行上,则程序将重新开始执行,因为无法回滚到以前的断点。当您深入到方法序列中并需要st时,这个操作特别有用

快速找到错误的原因

在开发中我们经常会碰到很多 bug。一般有以下几种

  • php 语言报错

报错时,我们应该先看下报错内容,这很重要,他可以让你知道你的代码错那里了。一般会返回给你错误是那一行,环境装了 xdebug 后还会显示错误的地址运行时经过了那些文件,那些方法

  • 写数据库操作失灵

这个错误难度就高了些。因为你需要了解当前业务需要改那些数据表。操作过后那张表的数据漏了。这个操作你有没有写。虽然说只要自己了解业务就可以不用调试也可以快速解决,但是传参或返回很复杂。那这个就很适合了

辅助读懂比效复杂的代码

工作中并不是全都是自己使用框架开发,有时还会为了进度使用一些开源的项目(ecshop,dedecms)。也可能是前同事遗留的代码。自己写的东西很容易看懂,但是看别人的东西,如果写的不好那绝对是恶梦。你会在看都不想看,心里在吐槽代码不合理的地方。心中始终十分抗拒,导致功能变更延期。

复杂的代码只需要知道它会接收什么参数,返回什么东西就可以了。如果不是很重要完全可以不看它内部的内容。把它隔离开来。

学习技术超前的代码运行逻辑。那就需要进行断点调试了。

代码重构

代码重构是维护一个写的很烂的项目必需经历的过程。重构的核心也是知道指定的方法有那些改变,或把它拆分出来。或把它整合到一块。

  1. 断点查看原逻辑有那些操作,记录下来,如果不是算法,主要记录的还是数据表操作
  2. 每个操作都有传参和返回,在调试模式下我们很容易就知道访问方法前环境中有那些参数可供使用
  3. 重构完后,可以使用相同的请求参数来访问重构代码。结果一致就为重构完成了

系列文章

  1. xdebug的安装配置
  2. xdebug的实际运用 [本篇]
  3. xdebug性能分析

FQA

  1. 文章字太多了,不想看
我的文章有对应的视频,你可以通过视频来进行学习这一期的内容。
但是你不要吐槽我语言表达能力和普通话,因为我平时也不怎么说话,想练习口才才做的视频。附上 链接

jani
62 声望2 粉丝

该家伙很懒,什么都没留下~