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 : 同上  |