推薦程式碼除錯工具 Xdebug
寫程式碼總繞不過需要除錯,除了 UnitTest 外,我們還是需要藉助 Xdebug 進行除錯。
所以今天來說說如何基於本地 Docker 環境下,使用 Xdebug。
安裝 Xdebug這裡的使用,是分別整合到 VS Code 和 PHPStorm 下。
還是基於神級武器 —— Laradock。我們先看看 Laradock 官網是怎麼安裝 Xdebug。
Install xDebug#
1 - First install xDebug in the Workspace and the PHP-FPM Containers:
a) open the .env file
b) search for the WORKSPACE_INSTALL_XDEBUG argument under the Workspace Container
c) set it to true
d) search for the PHP_FPM_INSTALL_XDEBUG argument under the PHP-FPM Container
e) set it to true2 - Re-build the containers docker-compose build workspace php-fpm
我們修改對應的地方,然後 build
,如果出現下面的錯誤提示:
嘗試新增國內源試試:
RUN sed -i s@/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list
重新 docker-compose up -d nginx
後,在 Windows / Mac 下用命令 ./php-fpm/xdebug status
檢視安裝狀態:
目前開發使用 IDE,個人覺得普遍用的最多的就是 VS Code 和 PHPStorm。所以下面就利用這兩個 IDE,分別說說如何使用 Xdebug 的。
VS Code
在 VS Code 下,如果沒安裝 Xdebug 外掛,直接搜尋安裝即可:
安裝後,增加 Xdebug 環境配置:
這樣就會專案的 .vscode
資料夾下多了一個 Xdebug 配置檔案 launch.json
,我們配置埠號與 php-fpm
下的 Xdebug
一致,我們再配置 pathMappings
讓 docker
下的專案路徑與本地專案路徑關聯。具體如下:
{
"version": "0.2.0",
"configurations": [
{
"name": "XDebug listening to Laradock",
"log": true,
"type": "php",
"request": "launch",
"port": 9000,
"pathMappings": {
"/var/www/myrss": "${workspaceFolder}",
}
},
{
"name": "Launch currently open script",
"type": "php",
"request": "launch",
"program": "${file}",
"cwd": "${fileDirname}",
"port": 9000
}
]
}
好了,我們啟動 XDebug
,列印出如下內容,即表示等待請求:
我們寫個 Demo,並設定斷點:
Artisan::command('hello', function () {
$i = 0;
$i++;
return "hello".$i;
});
然後啟動 Xdebug
,並執行命令:
php artisan hello
我們可以看到很多輸入、輸出、斷點等資訊:
其中我們也能看到此時的變數 $i
處於未初始狀態:
我們在這斷點繼續往下執行:
PHPStorm
在 Mac 或者 Windows 10 下 Docker 的預設 ip 為:10.0.75.1,
我們先增加一個 Server,其中:
- Name:laradock
- Host: 10.0.75.1
- mappings,等同於上文 VS Code 配置的 pathMappings
然後,可以新建 PHP Remote Debug,其中:
- Server:關聯到我們上面建的 laradock
- IDE key:和 Laradock‘s php-fpm 中配置的保持一致即可
好了,我們可以使用 demo,建立斷點,執行 Debug 等待請求::
一樣的,執行命令:php artisan hello
:
我們繼續往下走:
總結用好 Xdebug,更加直觀的瞭解方法中每個變數的動態變化,能提高我們跟蹤和排查程式碼的問題所在。至於下一步如何更好的使用 Xdebug,就看各自的實際專案和開發需要了。
參考
Setting up xDebug with PHPUnit using Docker for Mac and PHPStorm
Laradock + XDebug + MS Code? No problem https://medium.com/full-stack-development/laradock-xdebug-ms-code-no-problem-35a4338deb3f
Laradock的xdebug在vscode上使用的配置
- 如何設定VSCode XDebug在laradock環境上 https://blog.scottchayaa.com/post/2018/10/16/vscode-phpunit-on-laradock/
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2334/viewspace-2816447/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- CSS除錯工具推薦—IETesterCSS除錯
- phpstorm 使用 Xdebug 除錯程式碼PHPORM除錯
- HTTP除錯工具推薦:FiddlerHTTP除錯
- 優秀開發工具:推薦8個線上除錯程式碼的網站薦除錯網站
- Docker PHP 配置 VS Code Xdebug PHP 除錯工具: Xdebug for DockerDockerPHP除錯
- phpstrom編輯器進行PHP程式碼的xdebug除錯PHP除錯
- 程式碼簽名好用的工具推薦
- 文章推薦:EJB的效能除錯除錯
- phpstorm + xdebug 斷點除錯PHPORM斷點除錯
- Laravel+xdebug 除錯問題Laravel除錯
- vagrant & centos & phpstorm & xdebug 除錯CentOSPHPORM除錯
- metarank: 推薦排名類的低程式碼機器學習工具機器學習
- 常見的低程式碼開發工具推薦
- 七款Debug工具推薦:iOS開發必備的除錯利器iOS除錯
- Windows PHPstorm xdebug 斷點除錯WindowsPHPORM斷點除錯
- Xdebug+PhpStorm 遠端除錯PHPORM除錯
- ubuntu& phpstorm & xdebug 除錯 phpUbuntuPHPORM除錯
- 使用Xdebug進行遠端除錯除錯
- 在phpStorm中使用xdebug除錯PHPORM除錯
- 推薦:IE6 前端除錯神器 SPOON!前端除錯
- PhpStorm+Homestead+Xdebug除錯LaravelPHPORM除錯Laravel
- PHP 程式碼除錯跟蹤工具 YtracePHP除錯
- 推薦幾個不錯的console除錯技巧除錯
- Homestead 下關於 PhpStorm Xdebug 斷點除錯工具的安裝PHPORM斷點除錯
- 推薦一款好用的程式碼視覺化工具視覺化
- Java程式碼轉為C#的5款工具推薦JavaC#
- 推薦五款優秀的PHP程式碼重構工具PHP
- GDB 除錯程式碼除錯
- Python 程式碼除錯—使用 pdb 除錯Python除錯
- Homestead+PhpStorm+Xdebug 遠端除錯PHPORM除錯
- VS Code + Homestead + Xdebug 斷點除錯配置斷點除錯
- Swoole 如何使用 Xdebug 進行單步除錯除錯
- 【PHP】XDebug+VS Code除錯PHP頁面PHP除錯
- phpstorm+xdebug遠端斷點除錯PHPORM斷點除錯
- 推薦 10 個超棒的 CSS3 程式碼生成工具CSSS3
- 10款非常棒的CSS程式碼格式化工具推薦CSS
- vue 程式碼除錯神器Vue除錯
- Linux 環境安裝 Xdebug 進行除錯Linux除錯