cakephp调试¶
输出¶
cakephp中可以用debug方法进行输出,类似angular中的console.log();
1 2 | $result = array('status' => 0, 'method' => 'index', 'data' => 'data', 'msg' => 'message'); debug($result); |
运行后会输出:
1 2 3 4 5 6 | [
'status' => (int) 0,
'method' => 'index',
'data' => 'data',
'msg' => 'message'
]
|
断点调试¶
1.把demo项目拉到本地
demo
把docker配置拉到本地,和demo放在同一目录下
docker
2.开启docker,然后在docker目录下运行
1 2 | docker-compose build docker-compose up -d |
在docker desktop中 进入docker容器
运行命令编译项目
1 2 | cd /var/www/html composer install |
3.vscode中安装PHP Debug插件
4.在php项目的.vscode目录下修改launch.json文件,写入以下内容。
如果没有就创建一个
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | { "version": "0.2.0", "configurations": [{ "name": "Listen for XDebug", "type": "php", "request": "launch", "port": 9003, "log": true, "externalConsole": false, "pathMappings": { "/var/www/html/": "${workspaceRoot}" }, "ignore": [ "**/vendor/**/*.php" ], }, ] } |
5.vscode中按F5开启调试,就能开始调试了
6.如果在vscode中无法打断点,进入vscode的设置中
左上角File->Preferences->Settings->Features->Debug
将Allow Breakpoints Everywhere勾上

Tips
xdebug版本升级后,配置不一样,具体查看Upgrading from Xdebug 2 to 3
docker配置时,如果页面不能访问或者db连接不上,有可能是端口被占用了
不用xampp跑cakephp时,要将php.ini中修正下记内容
1 2 3 4 5 6 7 8 | extension_dir = "ext" : extension_dir = "./ext" ;extension=intl : 去除; ;extension=mbstring : 同上 ;extension=mysqli : 同上 ;extension=pdo_mysql : 同上 ;extension=pdo_pgsql : 同上 ;extension=pdo_sqlite : 同上 ;extension=pgsql : 同上 |