说明
vscode是个神奇的玩意,我以前开发基本是通过phpstorm开发,但是涉及的语言比较杂,感觉还是vscode比较万金油,软件又不用破解,想做什么编码开发直接哐哐哐下载对应插件,全栈不是打杂就是架构师,各位细品,程序员的心酸~~
TIP: 还是那句话,磨刀不误砍柴功,在php开发过程中,难免会遇到深沉的逻辑分支,这个就需要需要断点监听来打断点来逐一验证,重点还是可以查看断点的上下文变量参数,这不比写日志和print_r输出来得香么,提一句,如果是基于markdown开发的,debug会冲突的,记得~~
准备工作:
系统:windows10 专业版64X
vscode:v1.8.3.0(建议下载最新版本,因为一些AI插件需要最高版本vscode支持)
phpstudy:v8.1 (nginx+php,php用的7.2.9nts)
PHP Debug:v1.33.1(vscode插件)
php_xdebug-3.1.6-7.2-vc15-nts-x86_64.dll:php拓展(不知道怎么下载,可以看我之前的文章《phpStorm配置Xdebug调试YIi2接口或者浏览器》)
开始
1、配置php.ini配置
文件的路径等请根据自己本地电脑路径来,环境变量顺便也加上去
[XDebug]
zend_extension="G:\tool\phpstudyV8.1\Extensions\php\php7.2.9nts\ext\php_xdebug-3.1.6-7.2-vc15-nts-x86_64.dll"
xdebug.mode = debug
xdebug.client_port = 9100
xdebug.profiler_output_name = "cachegrind.out.%t.%p"
xdebug.remote_handler = "dbgp"
xdebug.idekey = "vscode"
xdebug.client_host = "localhost"
xdebug.log ="G:\tool\phpstudyV8.1\Extensions\tmp\xdebug\php.log"
xdebug.log_level = 7
xdebug.profiler_append = 0
xdebug.start_with_request = yes
xdebug.use_compression = false
2、vscode安装PHP Debug插件
3、拓展的基本设置
这里还需要vscode指定php运行地址,我把配置放出来,大家根据自己情况调整,注意端口号必须跟php.ini配置的一样,不然对不上暗号~~
"Codegeex.Privacy": false,
"php.validate.executablePath": "G:/tool/phpstudyV8.1/Extensions/php/php7.2.9nts/php.exe",
"php.debug.executablePath": "G:/tool/phpstudyV8.1/Extensions/php/php7.2.9nts/php.exe",
"workbench.startupEditor": "none",
"Codegeex.Comment.LanguagePreference": "zh-CN",
"Codegeex.OnlyKeyControl": true,
"security.workspace.trust.untrustedFiles": "open",
"launch": {
"configurations": [
{
"name": "Launch current script in console",
"type": "php",
"request": "launch",
"program": "${file}",
"cwd": "${fileDirname}",
"externalConsole": false,
"port": 9100
},
{
"name": "Listen for XDebug",
"type": "php",
"request": "launch",
"port": 9100
}
]
},
"php.executablePath": "G:/tool/phpstudyV8.1/Extensions/php/php7.2.9nts/php.exe",
4、实验断点
找个项目php文件在编码区域点击增加断点标记(nginx+php的站点自己配置应该可以不用我教了吧),F5启动断点
这里我是直接在站点入口文件打了断点,所以一启动调试就进入断点了,如果大家是调试接口的,可以在接口逻辑代码打断点,然后通过接口调试工具请求接口,或者根据浏览器请求页面,页面请求接口,都可以触发这个vscode的断点的
5、复盘
5.1、php版本必须对应php_xdebug的拓展,不然不行的
5.2、php.ini的xdebug拓展配置中的端口号必须跟vscode那边的对应上
5.3、php_xdebug的拓展注意下是否2.0x的版本,还是3.0x的版本,写法有区别
5.4、配置这个新手的也就花费半天而已,搞好了之后写代码完全不慌,代码不怕写错,就怕写着写着逻辑就乱了,通过断点各个分支跑一跑,路子就宽了