Laravel+xdebug 调试问题

Laravel+xdebug 调试问题

今天准备重温下laravel,想用xdebug追踪下代码,但遇到一个坎跨不过去
环境是Homestead,里面有laravel项目几个,tp项目数个.xdebug在tp中正常运行,但在laravel中出现一个问题--断点只能在入口文件中生效(index.php)在控制器中的断点无效.

依稀记得几个月前遇到同样的问题,最终是放弃了在laravel中用xdebug 〒_〒

这段时间涨了一点姿势,决定继续琢磨琢磨,想到IDE中不是有步入等调试按钮吗(以前只会断点,f9),试试用f7(step into),依旧失败,但是下面的调试信息给了一条宝贵的信息大意是目录映射(map)有问题,按照提示进入发现是
vendor下框架目录映射问题,于是老老实实地加入目录映射.ok! f7成功步入!
继续在控制器打断点,依旧没有成功???
于是乎在app目录也加上了映射,依旧没效果....
只能继续最终框架代码执行过程看能跟踪到哪儿...
一番最终定位到是在这

vendor\laravel\framework\src\Illuminate\Routing\Controller.php  
function callAction($method, $parameters) {
        return call_user_func_array([$this, $method], $parameters);
}
  • 怀疑是与call_user_func_array函数有关?xdebug到这儿就不能继续追踪下去了...
  • 参考了tp3.2,tp在进入控制器方法是没有用该函数,而是用反射的invoke 方法调用
  • 但一番百度,没有任何结果显示xdebug不能进入call_user_func_array调用的方法..
  • 有点不甘心,再一次追踪到call_user_func_array时发现下方debugger栏显示了和前面遇到的问题一致目录映射,这次直接在app/Http/Controllers 添加映射目录
    • 成功!

写下这篇解决记录 一上午已经过去了,嗯,几下长记性

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
未填写
文章
1
粉丝
0
喜欢
0
收藏
0
排名:1728
访问:405
私信
所有博文
博客标签