当前位置: 首页 > news >正文

vscode php Launch built-in server and debug, PHP内置服务xdebug调试,自定义启动参数配置使用示例

在vscode中,当我们安装了插件 PHP Debug(xdebug.php-debug)或者 xdebug.php-pack 后 我们通过内置默认的 php xdebug配置启动php项目后,默认情况下我们在vscode中设置断点是不会生效的,因为我们的内置php服务默认启动时是不会加上xdebug参数的。 这个时候有2种解决方法:

注意,不管那种方法,前提是你的php必须先安装好xdebug模块!

方法一、自定义vscode php内置服务的启动参数,增加xdebug的启动参数

vscode php内置服务配置  .vscode/launch.json

{"version": "0.2.0","configurations": [{"name": "Launch built-in server and debug","type": "php","request": "launch","runtimeArgs": ["-dxdebug.client_host=127.0.0.1","-dxdebug.client_port=9003","-dxdebug.mode=debug","-dxdebug.start_with_request=1","-S","0.0.0.0:8000","-t","${cwd}/public","${cwd}/public/router.php",],"port": 9003,"serverReadyAction": {"action": "openExternally"}}]
}

注意事项:

1. 上面的php内置服务的配置中,我们通过runtimeArgs增加的 -d启动参数,这个就相当于我们在php.ini的配置文件里面增加了相应的配置参数一样。

PHP内置服务的完整语法: php [options] -S <addr>:<port> [-t docroot] [router]

这里可用的其他的可选性

  -d foo[=bar]     Define INI entry foo with value 'bar'

  -z <file>    Load Zend extension <file>.

2. 上面的xdebug启动参数配置是针对debug v3版本的,如果是v2版本需要有调整,2个版本的区别如下:

For Xdebug v3.x.x:

xdebug.mode = debug
xdebug.start_with_request = yes

For Xdebug v2.x.x:

xdebug.remote_enable = 1
xdebug.remote_autostart = 1
xdebug.remote_port = 9000

xdebug v2版本的启动参数为

 "runtimeArgs": [
                "-dxdebug.remote_enable = 1",
                "-dxdebug.remote_autostart = 1",
                "-dxdebug.remote_port = 9000",
                "-S",
                "0.0.0.0:8000",
                "-t",
                "${cwd}/public",
                "${cwd}/public/router.php",
            ],
 

方法二、安装插件 DEVSENSE.phptools-vscode 

如果不手动增加上面的配置,就需要安装这个插件,这个插件安装后,我们通过vscode启动PHP内置服务就会自动帮我们增加xdebug的启动参数, 如

Listening to Xdebug on port 0.0.0.0:9003,:::9003 ...
Launching /opt/local/bin/php -dxdebug.client_host=127.0.0.1 -dxdebug.client_port=9003 -dxdebug.mode=debug -dxdebug.start_with_request=1 -S localhost:8000 -t /tp8/server/public /tp8/server/public/router.php ...
PHP Development Server

 不过这个插件免费版只能使用基础功能,高级功能是要收费的。

总结: vscode里面的各种的服务启动的参数实际上都可以通过.vscode/launch.json 文件中configurations 节点下的 runtimeArgs 来指定, 以上面的php内置服务为例,我们通过-d增加的xdebug启动参数最后都会自动附加到我们的php服务启动参数(php.ini)里面。 另外在php中使用xdebug的前提是php必须安装xdebug模块。


http://www.mrgr.cn/news/65225.html

相关文章:

  • 文章解读与仿真程序复现思路——电网技术EI\CSCD\北大核心《考虑时空非均匀的特高压阀侧套管数字孪生模型降阶算法研究 》
  • Java学习Day57:碧水金睛兽!(Spring Cloud微服务1.0)
  • Redis常见面试题概览——针对实习面试
  • 【博弈论】分割数游戏
  • Python pyautogui库:自动化操作的强大工具
  • 网络编程入门
  • LoRA(Low-Rank Adaptation)的工作机制 - 低秩矩阵来微调全连接层
  • JAVA学习-练习试用Java实现“判断奇偶数”
  • NFC碰一碰支付系统私有化部署的实用技巧!
  • 中国逐年最大NDVI数据集(250m)
  • 软件项目管理 之 6抓6放
  • 【JavaEE】【网络原理】初识网络
  • 重新构想定性数据分析:使用 NVivo 15 实现 AI、反思和备忘录
  • 彻底理解cookie、session、token
  • 近十年视觉任务中的对抗攻击研究综述
  • 解锁数字人直播:重塑行业生态,让真人出镜成过去式?
  • GEE 案例:利用多源遥感数据计算并预测指定森林区域的碳储量及RMSE
  • ROS(Robot Operating System)中,编写一个记录机器人速度并将其转换成轨迹
  • C++和OpenGL实现3D游戏编程【连载17】——着色器进阶(附源码)
  • 【时间之外】IT人求职和创业应知【26】
  • 《FPGA(现场可编程门阵列)的时序分析》
  • 五层塔灯——智能仓储的守护者
  • 未来已来,软件行业的下一个风口在哪里?
  • PHP水果销售系统-计算机毕业设计源码01845
  • GPT-SoVITS 部署方案
  • 节能灯与led灯哪个对眼睛好?家长必看小学生台灯哪个品牌更护眼