使用PHPStorm+XDebug搭建单步调试环境

 更新时间:2017年11月19日 16:02:45   作者:悠悠  
由于 PhpStorm 不像 Zend 公司为 Zend Studio 那样配套集成了很多开发部件,包括解释器、调试器、虚拟机、服务器、开发框架等等。因此,配置 PhpStorm 开发环境相对较繁琐,有很多需要注意的地方。

PHP是一个解释执行的语言,一般来说,进行调试的时候,只要通过使用 var_dump 或者 var_export 两个函数,就可以得到PHP中变量的值,达到调试的地步,但是对于大型项目,或者想研究一下别人的代码时,使用单步调试会变得简单的多。就拿目前最流行的 PHP Laravel 框架为例子,使用 PHPStorm 搭建单步调试环境。

PHPStorm安装和基本配置

PHPStorm下载安装

PHPStorm除了体积有些大外,算是PHP IDE中非常强大便捷的开发环境。官网下载地址:https://www.jetbrains.com/phpstorm/

本站下载地址 点击下载

PHPStorm激活

安装之后需要激活,如果经济能力许可,可以购买正版,当然,网上也有很多激活方式。这儿需要提醒的是,如果你激活不了,可是试试在 host 中添加下面这一行 0.0.0.0 account.jetbrains.com

PHPStorm设置字体大小

打开PHPStorm以后,可以在选择菜单 File -> Settings -> Editor -> Colors & Fonts -> Font ,在右边显示的信息栏中设置自己习惯的字体和大小。

PHPStorm导入项目

可以在PHPStorm中选择:File -> Open,直接打开工作文件夹,一般我喜欢把所有的PHP项目放在一个 PHP_Projects 的文件夹下,然后统一打开,便于开发,一面频繁切换工作空间。

PHPStorm标记项目位置

一般情况下,打开的文件夹下面会有很多项目,我们需要标记这些项目,这样能够提供更好的索引和代码之间关联。
菜单选择:File -> Settings -> Directories,然后把每个项目的根目录标记为 Sources。

安装XDebug扩展

下载XDebug扩展

为了调试PHP,我们还需要一个PHP扩展:xDebug,这是一个非常强大的PHP调试扩展,用来最终PHP执行过程,执行堆栈等。xDebug官方下载地址:https://xdebug.org/,点击每个版本说明中的 download 连接即可进入下载页面,注意这儿需要选择适合自己系统版本和PHP版本的xdebug扩展。

配置xdebug扩展

下载之后解压缩,里面包含一个 dll 格式或者 so 格式的动态链接库,我们把它放在PHP安装目录的ext文件夹下,然后配置PHP.ini。需要在PHP最后添加xdebug的配置。

[xdebug]
zend_extension="C:\Devlope\wamp\php7.16\ext\php_xdebug-2.5.5-7.1-vc14-x86_64.dll"
xdebug.remote_enable=1
xdebug.remote_autostart=1
xdebug.remote_port=9000
# 开启所有站点xdebug调试
xdebug.remote_connect_back=1

首先进行简单的配置,xdebug的配置非常丰富,详细可以查看官方配置说明文档:https://xdebug.org/docs/all_settings,配置完成之后,需要保存,然后重启服务器(Apache或者nginx),然后在 phpinfo(); 中检查是否安装成功。

PHPStorm运行调试配置

PHPStorm服务器配置

如果跳过这一步,则下一步就需要手动添加服务器。如果在这儿配置了服务器,就可以在下一步中直接选择。
PHPStorm选择菜单:File -> Settings -> Language & Frameworks -> PHP -> Servers,点击那个绿色的 + 可以添加一个服务器配置,可以配置服务器的主机地址,端口一击调试器,详细可以参考下一步的截图。

PHPStorm运行项目配置

PHPStorm选择菜单:Run -> Edit Configurations;点击左上角的 + 添加配置,在候选框中选择 PHP Web Application,然后点击添加一个PHP项目实例。填写右边的相关信息,Start URL 为你的项目的访问地址,这个是需要在你的服务器(Apache或者nginx)中配置的。Server哪儿点击右边的三个点,可以添加一个服务器实例,注意填写的Host需要相同。

PHPStorm调试配置

PHPStorm选择菜单:File -> Settings -> Language & Frameworks -> PHP -> Debug,点击Debug这一项,可以看到Debug的配置,一般这儿不用修改,只需要注意Debug port需要和你在PHP.ini中配置的port一致,并且勾选Can accept external connections。

PHPStorm进行单步调试

一切就绪,接下来就是单步调试了。可以通过点击PHPStorm中代码左边的位置设置断点,现在我们可以在 Laravel 网站根目录 Public 下的 index.php 开头设置一个断点,然后选择PHPStorm菜单:Run -> Debug "alaim" 进行调试,可以看到PHPStorm底部的信息框中答应出了所有变量的值。

F8:单步,不跳入函数
F7:执行跳指令,跳入函数
Shift+F8:跳出函数
Alt+9:运行到指针处

相关文章

  • PHP采用curl模仿用户登陆新浪微博发微博的方法

    PHP采用curl模仿用户登陆新浪微博发微博的方法

    这篇文章主要介绍了PHP采用curl模仿用户登陆新浪微博发微博的方法,较为详细的分析了curl模仿用户登陆新浪微博的原理与方法,是非常实用的技巧,需要的朋友可以参考下
    2014-11-11
  • PHP结合Vue实现滚动底部加载效果

    PHP结合Vue实现滚动底部加载效果

    这篇文章主要给大家介绍了关于PHP结合Vue如何实现滚动底部加载效果的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2017-12-12
  • .htaccess文件保护实例讲解

    .htaccess文件保护实例讲解

    .htaccess太强大了,但它本身会不会被破解掉呢,请问如何保护它?
    2011-02-02
  • php使用pthreads v3多线程实现抓取新浪新闻信息操作示例

    php使用pthreads v3多线程实现抓取新浪新闻信息操作示例

    这篇文章主要介绍了php使用pthreads v3多线程实现抓取新浪新闻信息操作,结合实例形式分析了php使用pthreads多线程抓取新浪新闻信息具体实现步骤与操作技巧,需要的朋友可以参考下
    2020-02-02
  • PHP下操作Linux消息队列完成进程间通信的方法

    PHP下操作Linux消息队列完成进程间通信的方法

    当我们开发的系统需要使用多进程方式运行时,进程间通信便成了至关重要的环节。消息队列(message queue)是Linux系统进程间通信的一种方式。
    2010-07-07
  • PHP读取XML文件的方法实例总结【DOMDocument及simplexml方法】

    PHP读取XML文件的方法实例总结【DOMDocument及simplexml方法】

    这篇文章主要介绍了PHP读取XML文件的方法,结合实例形式总结分析了php基于DOMDocument及simplexml方法针对xml文件的载入、读取等相关操作技巧,需要的朋友可以参考下
    2019-09-09
  • PHP+JS实现大文件切片上传功能实现实例源码

    PHP+JS实现大文件切片上传功能实现实例源码

    这篇文章主要介绍了PHP+JS实现大文件切片上传功能实现实例源码,需要的朋友可以参考下
    2023-05-05
  • PHP Trait代码复用类与多继承实现方法详解

    PHP Trait代码复用类与多继承实现方法详解

    这篇文章主要介绍了PHP Trait代码复用类与多继承实现方法,结合实例形式详细分析了Trait代码复用类的原理并结合具体实例形式分析了php基于Trait多继承的相关实现与使用技巧,需要的朋友可以参考下
    2019-06-06
  • PHP new static 和 new self详解

    PHP new static 和 new self详解

    使用 self:: 或者 __CLASS__ 对当前类的静态引用,取决于定义当前方法所在的类:使用 static:: 不再被解析为定义当前方法所在的类,而是在实际运行时计算的。也可以称之为“静态绑定”,因为它可以用于(但不限于)静态方法的调用。
    2017-02-02
  • PHP文件去掉PHP注释空格的函数分析(PHP代码压缩)

    PHP文件去掉PHP注释空格的函数分析(PHP代码压缩)

    我自己尝试过正则,但是发现在过滤单行注释等方面不尽如意,很容易出错。无意中看到了某sns里面的strip_whitespace函数,特进行分享,希望能对需要的朋友有所帮助
    2013-07-07

最新评论