摘要:寫代碼總繞不過需要調試,除了外,我們還是需要借助進行調試。這里的使用,是分別整合到和下。安裝還是基于神級武器。至于下一步如何更好的使用,就看各自的實際項目和開發需要了。
寫代碼總繞不過需要調試,除了 UnitTest 外,我們還是需要借助 Xdebug 進行調試。
所以今天來說說如何基于本地 Docker 環境下,使用 Xdebug。
這里的使用,是分別整合到 VS Code 和 PHPStorm 下。安裝 Xdebug
還是基于神級武器 —— 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
參考:https://laradock.io/documentation/#install-xdebug
我們修改對應的地方,然后 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 查看安裝狀態:
配置 Xdebug目前開發使用 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 https://intellij-support.jetbrains.com/hc/en-us/community/posts/360000229624-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上使用的配置 https://www.itread01.com/content/1526278934.html
如何設定VSCode XDebug在laradock環境上 https://blog.scottchayaa.com/post/2018/10/16/vscode-phpunit-on-laradock/
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/29593.html
摘要:確實是一款非常好用的生產力工具他的代碼提示檢錯重構調試都非常的棒而且自帶的文件歷史功能好用的我都快哭了幫我挽救了沒來得及提交到的代碼其實不只可以寫寫包括也是極好的的功能他全部都有并且還有很多的好用的插件針對的針對的比如比如官方網站環境說明環 showImg(https://segmentfault.com/img/bVCT8T?w=600&h=360); PHPSTORM 確實是一款非...
摘要:這樣就配置好了安裝插件監聽地址開啟小電話以后,如果訪問會自動進入斷點中的模式,這樣我們的開發環境的斷點調試就已經配置好了。 docker-compose環境來自:https://github.com/zhaojunlik...原文:http://blog.oeynet.com/post/9... 說明 在開發中,斷點調試是我們最快能找出Bug代碼問題的所在,那么在docker中如何使用...
摘要:這樣就配置好了安裝插件監聽地址開啟小電話以后,如果訪問會自動進入斷點中的模式,這樣我們的開發環境的斷點調試就已經配置好了。 docker-compose環境來自:https://github.com/zhaojunlik...原文:http://blog.oeynet.com/post/9... 說明 在開發中,斷點調試是我們最快能找出Bug代碼問題的所在,那么在docker中如何使用...
摘要:默認關閉如果該設置為,那么將禁用關閉操作符,以便不再隱藏通知警告和錯誤。將寫入垃圾收集統計信息輸出的目錄,確保將運行的用戶具有對該目錄的寫入權限。此設置確定用于將垃圾回收統計信息轉儲到的文件的名稱。 showImg(https://segmentfault.com/img/bVbgEC5?w=480&h=274); 前言 Xdebug是PHP的擴展,用于協助調試和開發。 它包含一個用...
閱讀 765·2019-08-29 16:32
閱讀 836·2019-08-29 12:31
閱讀 3208·2019-08-26 18:26
閱讀 3152·2019-08-26 12:20
閱讀 1728·2019-08-26 12:00
閱讀 3006·2019-08-26 10:58
閱讀 2811·2019-08-23 17:08
閱讀 2309·2019-08-23 16:32