玩转 PhpStorm 系列(九):基于 Xdebug 进行代码调试(上)—— PHP CLI 应用 | 玩转 PhpStorm 系列教程


本站和网页 https://laravelacademy.org/post/21866 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

玩转 PhpStorm 系列(九):基于 Xdebug 进行代码调试(上)—— PHP CLI 应用 | 玩转 PhpStorm 系列教程
Laravel 学院
文档
Laravel 8.x 中文文档
Laravel 7.x 中文文档
Laravel 6.x 中文文档
Laravel 5.8 中文文档
Laravel 5.7 中文文档
Laravel 5.6 中文文档
Laravel 5.5 中文文档
Laravel 5.4 中文文档
Laravel 5.3 中文文档
Laravel 5.2 中文文档
Laravel 5.1 中文文档
Lumen 中文文档
全栈教程
PHP 全栈工程师指南
PHP 入门到实战
Laravel 入门到精通
Vue.js 入门到实战
玩转 PhpStorm 教程
Laravel 博客入门项目
Laravel 微信小程序项目
Laravel 前后端分离项目
Swoole 入门到实战
Eloquent 性能优化实战
Redis 高性能实战系列
Laravel 新版本特性
PHP 新特性与最佳实践
Golang
Go 入门教程
Go Web 编程
Gin 使用教程
微服务开发
内功修炼
数据结构与算法
网络协议
微服务从入门到实践
高性能 MySQL 实战
高性能 Redis 实战
Laravel 消息队列实战
Laravel 从学徒到工匠
PHP 设计模式系列
名企面试指南
资源库
Laravel 资源大全
Laravel 开源项目
Laravel 扩展包
Laravel 资源下载
更多
博客 & 新闻
问答 & 讨论
Leetcode 题解
学院君读书笔记系列
关于 Laravel 学院
Laravel 互助学习群
Golang 互助学习群
更多
Laravel 中文文档
Laravel 全栈教程
Laravel 学习路径
Go 入门教程
程序员内功修炼
博客
问答
搜索
注册
登录
Info
Content
章节导航
玩转 PhpStorm 系列教程
目录索引
玩转 PhpStorm 系列(一):主题切换、自定义和第三方主题安装
玩转 PhpStorm 系列(二):通过快捷键实现代码全局导航和上下文导航
玩转 PhpStorm 系列(三):第三方插件的安装、使用和卸载
玩转 PhpStorm 系列(四):快捷键预览、切换和自定义
玩转 PhpStorm 系列(五):灵活使用代码模板功能提高编码效率
玩转 PhpStorm 系列(六):通过代码重构提高代码复用性
玩转 PhpStorm 系列(七):一些提高工作效率的小技巧
玩转 PhpStorm 系列(八):基于 IdeaVim 插件模拟 Vim 编辑器进行编码
玩转 PhpStorm 系列(九):基于 Xdebug 进行代码调试(上)—— PHP CLI 应用
玩转 PhpStorm 系列(十):基于 Xdebug 进行代码调试(下)—— PHP Web 应用
玩转 PhpStorm 系列(十一):使用 PHP CS Fixer 统一团队编码风格
玩转 PhpStorm 系列(十二):基于 PHPUnit 进行单元测试
图书
玩转 PhpStorm 系列教程
玩转 PhpStorm 系列(九):基于 Xdebug 进行代码调试(上)—— PHP CLI 应用
玩转 PhpStorm 系列(九):基于 Xdebug 进行代码调试(上)—— PHP CLI 应用
由 学院君 创建于2年前, 最后更新于 2年前
版本号 #7
4814 views
4 likes
0 collects
前面的教程大多围绕的是如何提高 PhpStorm 的日常编码效率,无论是代码导航、插件、快捷键还是代码模板、代码重构,都是围绕着效率展开。接下来,学院君来给大家介绍一些效率以外的主题,比如调试、测试以及编码风格。
首先我们来看调试。
在 PHP 生态中,最有名的调试工具莫过于 Xdebug:
所以,接下来,我们就以 Xdebug 为例演示如何在 PhpStorm 中对 PHP 代码进行调试。
安装配置 Xdebug 扩展
使用 Xdebug 对代码进行调试前,先要安装对应的 PHP 扩展。
以 Mac 系统为例,我们可以在终端窗口通过 php -m 指令查看是否已经安装 Xdebug 扩展:
在 Zend Mdoules 列表中可以看到「Xdebug」即表示安装成功。如果还没有安装,可以参考 Xdebug 官方文档进行安装。
除此之外,还需要通过配置文件对 Xdebug 尽心配置,可以通过 php --ini 命令查看 PHP 配置文件路径:
这里,我们在 /usr/local/etc/php/7.4/php.ini 中配置 Xdebug 配置如下(当然,你可以选择在 /usr/local/etc/php/7.4/conf.d 目录下新建一个 ext-xdebug.ini 对 Xdebug 进行单独配置,PHP 会自动加载对应的配置文件):
[XDebug]
zend_extension="xdebug.so"
xdebug.remote_enable=1
xdebug.remote_host=localhost
xdebug.remote_port=9001
xdebug.remote_autostart=1
xdebug.profiler_enable=1
xdebug.profiler_output_dir="/tmp"
xdebug.idekey=PHPSTORM
这里我们启用了远程监听(包括 IP 地址和端口设置)、脚本分析、以及设置 idekey 为 PHPSTORM,关于调试和分析配置项细节和含义,请参考 Xdebug 官方提供的调试设置和脚本分析文档。
完成以上准备工作后,可以在任意空目录下新建 index.php,在其中编写如下 PHP 脚本:
<?php
phpinfo();
?>
然后运行 php -S localhost:9000 来启动 PHP 内置 HTTP 服务器,在浏览器访问 http://localhost:9000,查看 PHP 中 Xdebug 扩展配置是否生效:
配置 PHP CLI 解释器
接下来,我们就可以在 PhpStorm 中通过 Xdebug 来调试 PHP 代码了。
开始进行代码调试前,先在 Preferences | Languages & Frameworks | PHP 中配置 PHP CLI 解释器:
如果你的 PhpStorm 中当前 CLI Interpreter 一栏显示 <no interpreter> 的话,可以点击右侧「...」 按钮添加:
注:你也可以在这里看到相应的 Debugger 扩展是 Xdebug 2.9.6 版本,如果这里没有检测到对应的 Xdebug 扩展信息,表明该版本的 PHP 没有安装这个扩展,需要参考上面的安装设置步骤进行安装配置。
在 Name 框输入 CLI 解释器的名称,在 PHP executable 框输入当前系统 PHP 二进制文件的路径即可,如果不知道,可以在终端窗口运行 which php 命令查看。
调试 PHP 脚本代码
接下来,我们先来看一个本地 PHP CLI 脚本代码的调试。我们首先编写一段测试代码 multi.php,这段代码的作用是打印九九乘法表:
<?php
// 通过二维数组生成九九乘法表
$multi = [];
for ($j = 0; $j < 9; $j++) {
for ($i = 0; $i < 9; $i++) {
$n1 = $i + 1;
$n2 = $j + 1;
if ($n1 < $n2) { // 摒除重复的记录
continue;
$multi[$i][$j] = sprintf("%dx%d=%d", $n2, $n1, $n1 * $n2);
// 打印九九乘法表
foreach ($multi as $row) {
foreach ($row as $item) {
printf("%-8s", $item); // 位宽为8,左对齐
printf("\n");
我们在终端窗口执行这段代码,打印结果如下:
如果在代码执行过程中报错,或者想要了解代码执行的完整流程,可以在代码编辑区从指定位置设置断点(从任意你想要调试的位置开始):
然后在 PhpStorm 导航菜单点击 Run->Debug...(或者通过快捷键 Ctrl + Option + D):
在弹出窗口选择要调试的 PHP 脚本:
即可进入 PHP CLI 脚本的调试流程:
接下来,你可以点击上图红框内的按钮进行断点调试,将鼠标移到对应的按钮上会出现提示文本,比如 Step Over 表示跳过当前这一行,Step Into 表示进入函数内部等等,这里我们可以点击通过 Step Into(第二个按钮)逐行调试代码,在调试过程中,你可以实时看到当前作用域内变量的值:
这样,可以及时感知代码当前的执行状态,从而对出现问题的地方进行定位和排查原因。如果代码逻辑很复杂,变量很多,还可以通过将关心的变量添加到监控区进行查看:
PhpStorm
代码调试
XDebug
安装配置
PHP
CLI
断点
点赞
取消点赞
收藏
取消收藏
赞赏
分享到以下平台:
<< 上一篇:
玩转 PhpStorm 系列(八):基于 IdeaVim 插件模拟 Vim 编辑器进行编码
>> 下一篇:
玩转 PhpStorm 系列(十):基于 Xdebug 进行代码调试(下)—— PHP Web 应用
2 条评论
#1
Young_yuyang
评论于 1年前
正在删除评论...
请教一下,倒数第三张图,所有参数的变量值都会显示出来是怎么设置的?
#2
学院君
评论于 1年前
回复 #1
正在删除评论...
从断点开始 后面的每一步变量都会输出啊
登录后即可添加评论
升级为学院君订阅用户(新年优惠🎁)
内容导航
安装配置 Xdebug 扩展
配置 PHP CLI 解释器
调试 PHP 脚本代码
相关推荐
Laravel自带的队列有两个类不知道是哪里来的?
问答
求laravel+beanstalkd代码例子
问答
PhpStorm 集成 WSL 虚拟机中的 PHP 进行单元测试和代码调试
PHP 入门到实战教程
环境搭建
玩转 PhpStorm 系列(十):基于 Xdebug 进行代码调试(下)—— PHP Web 应用
玩转 PhpStorm 系列教程
玩转 PhpStorm 系列(十二):基于 PHPUnit 进行单元测试
玩转 PhpStorm 系列教程
回到顶部
2022 基于 Laravel 6 构建
关于学院
订阅服务
友情链接
站点地图
本站 CDN 加速服务由又拍云赞助