創作內容

2 GP

【製作】如何使用xdebug幫PHP除錯在Vscode的環境、在laravel使用guzzlehttp在localhost的坑

作者:多古尼爾拉布拉布拉格│2021-12-23 11:02:23│巴幣:4│人氣:1072
昨天為了解決guzzle的不知道為啥不會動的問題,結果一連踩了兩個坑,稍微記錄一下吧
=======
一般的PHP是無法下斷點除錯的,
常見的方法是在editer或ide裝xdebug的插件。
我通常使用vscode

基本上這個影片說得很清楚
先去xampp/apache/htdocs存入
執行了phpinfo()這行的檔案
然後把全部複製下來
接著去xdebug.org/wizard貼上
下載他的dll檔案
放進去該放的地方
然後打開php.ini去設定
基本上照著影片上的輸入
但要注意的是
請加上這行
xdebug.client_port = 9003
接著去Vscode的執行按下新增組態
然後他就會跑出一個.vscode 的設定檔
裡面有launch.json
要注意的是剛剛設定預設的port是9003需要與這裡的port相同

接著按下xdebug
然後執行你的PHP程式
不管是框架或是什麼都可以使用
按下斷點 接著就跟習慣的模式相同

=====
接著我終於可以下斷點了
跑著跑著發現
阿 結果是在guzzlehttp發post給我自己的時候
不曉得為什麼一直無止境的重複呼叫同樣的幾個函式

我左思右想,看了看教學
發現教學都使用了已經設定好的domain

查了一下"guzzlehttp localhost"找到了這篇

原來問題出在localhost,又或者說問題出在我執行時起的服務是使用php artisan serve的指令
在使用guzzlehttp 發送到localhost要注意一點
由於使用php artisan serve開啟的服務是單執行序的

所以要再使用php artisan serve --port=8001 開啟另一個服務去接收自己發給自己的請求
否則將會陷入無止境的等待

=====
我為了解下面這個問題 所以我找了debugger 然後又有上面的問題
然後解決了之後我才想到
我看的教學都是有domain的
該不會是因為我打給自己
結果一查 guzzle localhost 真的是因為我起的服務是單執行緒
所以我會等我的第一條request回來
然後我要發的request一直等不到執行的奇怪bug

引用網址:https://home.gamer.com.tw/TrackBack.php?sn=5346325
All rights reserved. 版權所有,保留一切權利

相關創作

留言共 0 篇留言

我要留言提醒:您尚未登入,請先登入再留言

2喜歡★elvishao0331 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:界線... 後一篇:【近況報告】實習生的一週...

追蹤私訊切換新版閱覽

作品資料夾

Willy218359巴哈的各位
我寫的小說更新了!不想錯過更新的讀者們可以追蹤我的小屋看更多我要大聲說1小時前


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】