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


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

玩转 PhpStorm 系列(十):基于 Xdebug 进行代码调试(下)—— PHP Web 应用 | 玩转 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 Web 应用
玩转 PhpStorm 系列(十):基于 Xdebug 进行代码调试(下)—— PHP Web 应用
由 学院君 创建于2年前, 最后更新于 2年前
版本号 #5
4214 views
1 likes
0 collects
上篇教程我们演示了如何安装配置 Xdebug 扩展,并且在 PhpStorm 中基于 Xdebug 对 PHP CLI 脚本代码进行调试。不过 PHP 主要应用场景是 Web 开发,所以我们通常对 PHP 代码进行调试的场景也是 PHP Web 应用。
所以,作为 PhpStorm 代码调试教程的姊妹篇,这篇教程学院君来给大家演示如何在 PhpStorm 中基于 Xdebug 扩展对 PHP Web 应用进行代码调试。
准备工作
和 PHP CLI 应用一样,在对 PHP Web 应用进行代码调试之前,我们需要先安装配置 Xdebug 扩展,并且在 PhpStorm 中配置对应的 PHP CLI 解释器(带有 Xdebug 扩展的 PHP 版本即可),如果你已经配置过,可以跳过此步骤,如果没有,则需要参考上篇教程进行相应的初始化设置。
完成以上初始化操作后,就可以在 PhpStorm 中对 PHP Web 应用进行代码调试配置了,这里我们以一个 Laravel 应用作为示例 Web 项目。
编写测试代码
为了便于演示代码调试,我们在 Laravel 项目中编写一段 MVC 代码,在 routes/web.php 中新增一个路由:
Route::get('/posts', 'PostController@index');
然后创建对应的控制器:
php artisan make:controller PostController
并编写对应的控制器动作代码:
<?php
namespace App\Http\Controllers;
use App\Model\Post;
class PostController extends Controller
public function index()
$posts = Post::all()->toArray();
return view('welcome', compact('posts'));
修改 resources/views/welcome.blade.php 主体 HTML 部分代码如下:
<div class="content">
<div class="title m-b-md">
Posts
</div>
@isset($posts)
<ul class="posts">
@foreach($posts as $post)
<li>{{ $post->title }}</li>
@endforeach
</ul>
@endisset
</div>
在终端运行如下命令启动 PHP 内置的 HTTP 服务器来服务这个 Laravel 应用:
php artisan serve
在浏览器访问 http://127.0.0.1:8000/posts,报错如下:
通常,我们可以通过 dd、print_r、var_dump 之类的打印函数进行简单调试和问题定位:
class PostController extends Controller
public function index()
$posts = Post::all()->toArray();
dd($posts);
return view('welcome', compact('posts'));
对于比较简单的业务逻辑,这么做没什么问题,这也是 PHP 简单易上手的重要原因之一。不过对于复杂的业务逻辑,比如多层循环和嵌套,通过打印函数进行代码调试和问题定位,就显得有点力不从心了,这个时候,推荐使用 Xdebug 进行断点调试。
在 PhpStorm 中配置 Web 服务器
接下来,我们就来演示如何在 PhpStorm 中基于 Xdebug 来对上述测试代码进行调试和问题定位。
开始之前,需要对 PhpStorm 进行配置,以便可以接收到服务端的远程调试连接,首先在 Preferences | Languages & Frameworks | PHP | Debug 中配置 Debug 端口与 Xdebug 扩展配置保持一致(Widows 中将 Preferences 替换成 Settings):
然后在 Preferences | Languages & Frameworks | PHP | Servers 中新增服务器配置(域名和端口与对应的 PHP Web 应用保持一致即可):
这里的 PHP Web 应用部署在本地,如果是远程主机,例如 WSL、Docker、Homestead,还需要勾选下面的路径映射并进行配置。
通过 Xdebug 调试 Laravel 应用
完成上述配置后,在代码编辑器中设置断点:
在 PhpStorm 的导航栏 Run 下拉菜单中点击「Start Listening for PHP Debug Connections」启动监听:
回到浏览器,刷新 http://127.0.0.1:8000/posts 页面,此时会跳转到 PhpStorm 对应的 PostController Tab 页,进入断点调试模式,通过快捷键 F8(Step Over)跳过对 $posts 进行赋值的语句进入下一行:
在下方代码调试区域就可以看到 posts 变量的值了,它是一个数组,而在视图模板中试图以对象方式访问其属性,自然会报错。将 welcome.blade.php 中的 $post->title 修改为 $post['title'] 即可。
以上无论是 PHP CLI 脚本,还是 PHP Web 应用,都只是本地进行 PHP 代码调试,如果对应的 PHP 代码部署在远程主机(包括虚拟机、Docker 容器等非本地宿主机环境),又该如何进行断点调试呢?学院君会在后续项目实战教程中给大家演示。
PhpStorm
PHP
Web
代码调试
XDebug
Laravel
服务器
断点
监听
点赞
取消点赞
收藏
取消收藏
赞赏
分享到以下平台:
<< 上一篇:
玩转 PhpStorm 系列(九):基于 Xdebug 进行代码调试(上)—— PHP CLI 应用
>> 下一篇:
玩转 PhpStorm 系列(十一):使用 PHP CS Fixer 统一团队编码风格
1 条评论
#1
the
评论于 2年前
正在删除评论...
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator at admin@example.com to inform them of the time this error occurred, and the actions you performed just before this error.
More information about this error may be available in the server error log.
Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.
登录后即可添加评论
升级为学院君订阅用户(新年优惠🎁)
内容导航
准备工作
编写测试代码
在 PhpStorm 中配置 Web 服务器
通过 Xdebug 调试 Laravel 应用
相关推荐
laravel 任务调度 dailyat()不执行,用everyFiveMinutes却可以?
问答
Call to undefined method Illuminate\Support\Facades\Request::all()
问答
laravel ---- 关联表 A 和 B 如何模糊查询 B 表中指定的字段
问答
玩转 PhpStorm 系列(九):基于 Xdebug 进行代码调试(上)—— PHP CLI 应用
玩转 PhpStorm 系列教程
关于 laravel 任务调度的问题
问答
回到顶部
2022 基于 Laravel 6 构建
关于学院
订阅服务
友情链接
站点地图
本站 CDN 加速服务由又拍云赞助