VSCode中PHP使用Xdebug

本地環境

  • windows10
  • php8.2 nts
  • xdebug v3
  • thinkphp v8

下載Xdebug

Xdebug下載地址

從xdebug下載地址,下載最新的xdebug,解壓后將php_xdebug.dll放入php目錄的ext目錄下

配置php.ini

[Xdebug]
zend_extension = php_xdebug
xdebug.client_host = 127.0.0.1
xdebug.client_port = 9003
xdebug.mode = debug,coverage
xdebug.start_with_request = yes
xdebug.idekey=VSCODE

安裝擴展

配置launch.json

{// 使用 IntelliSense 了解相關屬性。// 懸停以查看現有屬性的描述。// 欲了解更多信息,請訪問: https://go.microsoft.com/fwlink/?linkid=830387"version": "0.2.0","configurations": [{"name": "Launch built-in server and debug","type": "php","request": "launch","runtimeArgs": ["-S","localhost:8000","-t","."],"port": 9003,"serverReadyAction": {"action": "openExternally"}},{"name": "Debug current script in console","type": "php","request": "launch","program": "${file}","cwd": "${fileDirname}","externalConsole": false,"port": 9003},{"name": "Listen for Xdebug","type": "php","request": "launch","port": 9003}]
}

運行調試

配合單元測試

安裝phpunit

composer require phpunit/phpunit --dev

因為我用的是tp8,單元測試bootstrap需要啟動tp的容器,所以安裝一下我的擴展bingher/think-test

composer require bingher/think-test --dev

安裝PHPUnit Test Explorer

擴展配置

"phpunit.command": "php",
"phpunit.phpunit": "vendor/bin/phpunit",
"phpunit.showAfterExecution": "always",
"phpunit.debuggerConfig": "Listen for Xdebug",
"phpunit.xdebugPort": 9003

重點是phpunit.command,phpunit.phpunit,我原來僅配置phpunit.phpunit: vendor/bin/phpunit.bat 發現擴展執行了一直在轉圈圈,調試模式報錯:?Error: spawn -dxdebug.mode=debug ENOENT at Process.ChildProcess._handle.onexit (node:internal/child_process:285:19) at onErrorNT (node:internal/child_process:483:16) at processTicksAndRejections (node:internal/process/task_queues:82:21)

根據以上配置后PHPUnit Test Explorer順利運行

phpunit.xml

<phpunit colors="true" verbose="true" bootstrap="./vendor/bingher/think-test/src/init.php"><coverage cacheDirectory="./runtime/phpunit/" pathCoverage="true"><include><directory suffix=".php">./app/</directory></include><report><html outputDirectory="./runtime/phpunit/" lowUpperBound="50" highLowerBound="90"/></report></coverage><testsuites><testsuite name="test"><directory>tests</directory></testsuite></testsuites>
</phpunit>

phpunit.xml可以參考phpunit官網進行配置.

如果沒有安裝bingher/think-test, 可以不用配置bootstrap

單元測試

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/84448.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/84448.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/84448.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

金融系統滲透測試

金融系統滲透測試是保障金融機構網絡安全的核心環節&#xff0c;它的核心目標是通過模擬攻擊手段主動發現系統漏洞&#xff0c;防范數據泄露、資金盜取等重大風險。 一、金融系統滲透測試的核心框架 合規性驅動 需嚴格遵循《網絡安全法》《數據安全法》及金融行業監管要求&am…

高考志愿填報管理系統---開發介紹

高考志愿填報管理系統是一款專為教育機構、學校和教師設計的學生信息管理和志愿填報輔助平臺。系統基于Django框架開發&#xff0c;采用現代化的Web技術&#xff0c;為教育工作者提供高效、安全、便捷的學生管理解決方案。 ## &#x1f4cb; 系統概述 ### &#x1f3af; 系統定…

PHP 項目中新增定時任務類型的詳細步驟(以 CRMEB 為例)

1.首先需要在下面文件中增加定時任務類型 2.在app\services\system\crontab\CrontabRunServices類中增加第一步中與定時任務類型同名的方法&#xff0c;注意需要下劃線轉小駝峰 例如定時任務的類型為&#xff1a;order_tick,而在CrontabRunServices類中的方法名稱為&#xff1…

Day27 函數專題2:裝飾器

1.裝飾器的思想&#xff1a;進一步復用 裝飾器&#xff08;Decorator&#xff09;是 Python 中一種強大的編程工具&#xff0c;核心作用是在不修改原函數代碼的前提下&#xff0c;為函數添加額外功能&#xff08;如日志記錄、性能統計、權限校驗等&#xff09;。它充分利用了 …

Qt進階開發:動畫框架的介紹和使用

文章目錄 一、QPropertyAnimation 簡介二、基本用法三、常用屬性和方法四、支持的屬性&#xff08;部分常用&#xff09;五、多個動畫組合六、使用緩和曲線七、狀態機框架 一、QPropertyAnimation 簡介 #include <QPropertyAnimation>QPropertyAnimation 可以讓你在一段…

IP選擇注意事項

IP選擇注意事項 MTP、FTP、EFUSE、EMEMORY選擇時&#xff0c;需要考慮以下參數&#xff0c;然后確定后選擇IP。 容量工作電壓范圍溫度范圍擦除、燒寫速度/耗時讀取所有bit的時間待機功耗擦寫、燒寫功耗面積所需要的mask layer

Flask RESTful 示例

目錄 1. 環境準備2. 安裝依賴3. 修改main.py4. 運行應用5. API使用示例獲取所有任務獲取單個任務創建新任務更新任務刪除任務 中文亂碼問題&#xff1a; 下面創建一個簡單的Flask RESTful API示例。首先&#xff0c;我們需要創建環境&#xff0c;安裝必要的依賴&#xff0c;然后…

filebeat原理架構

Filebeat 是基于 Golang 開發的輕量級日志采集 Agent&#xff0c;其核心架構設計圍繞高效、可靠地采集與轉發日志數據&#xff0c;主要組件和工作流程如下&#xff1a; ?一、核心架構組件? ?輸入 (Inputs)? 負責監控指定的日志源&#xff08;如文件路徑、日志文件&#x…

Air8000開發板新資料開放!多功能+高擴展特性全面解鎖

Air8000開發板最新技術資料正式向開發者開放。這個開發板集多功能與高擴展性于一身&#xff0c;將為物聯網、嵌入式系統等領域的創新項目提供更強大的技術支持&#xff0c;助力開發者快速實現創意落地。 工程師朋友們&#xff0c;Air8000開發板“多功能集成高擴展性”&#xff…

如何遷移Cordova應用到HarmonyOS 5 以及遷移時常見的問題?

以下是 Cordova 應用遷移至 HarmonyOS 5 的完整方案及常見問題解決方案&#xff0c;結合最新技術實踐整理&#xff1a; 一、遷移流程 1. ?方案選擇? ?方案??適用場景??操作復雜度??Android 兼容層方案?簡單應用快速上線低&#xff08;無需修改代碼&#xff09;?原…

板凳-------Mysql cookbook學習 (十--4)

6.3 設置客戶端時區 --客戶端位于不同時區需要注意&#xff0c;如果位于同一時區則不需要關心 mysql> drop table if exists t; Query OK, 0 rows affected (0.06 sec)mysql> create table t (ts timestamp); Query OK, 0 rows affected (0.05 sec)mysql> insert int…

如何根據excel表生成sql的insert腳本

根據excel自帶的vba宏進行操作 首先altF11 點擊插入~模塊 錄取執行語句 Sub GenerateSQL()Dim lastRow As IntegerlastRow Cells(Rows.Count, 1).End(xlUp).RowFor i 2 To lastRow 假設第一行是標題Cells(i, "S").Value "INSERT INTO table_name (ID, RE…

React hook之useRef

React useRef 詳解 useRef 是 React 提供的一個 Hook&#xff0c;用于在函數組件中創建可變的引用對象。它在 React 開發中有多種重要用途&#xff0c;下面我將全面詳細地介紹它的特性和用法。 基本概念 1. 創建 ref const refContainer useRef(initialValue);initialValu…

開疆智能ModbusTCP轉Canopen網關連接AB PLC與臺達伺服通訊案例

本案例是羅克韋爾PLC通過開疆智能ModbusTCP轉Canopen網關連接臺達A2伺服的配置案例。 配置方法&#xff1a; 首先打開PLC配置軟件“Studio5000”并新建項目導入通訊文件 對功能塊進行設置 填寫本地IP地址以及服務區IP地址以及寄存器 填寫寄存器地址數量及使能 確認無誤后將配置…

用 LoRA 對 Qwen2.5-VL 模型進行SFT - LoRA微調流程

用 LoRA 對 Qwen2.5-VL 模型進行SFT - LoRA微調流程 flyfish ┌──────────────────────────────────────────────────────────────────────────┐ │ 環境準備與啟動 …

熵最小化Entropy Minimization (二): 案例實施

前面介紹了熵最小化、常用的權重函數匯總、半監督學習&#xff1a;低密度分離假設 (Low-Density Separation Assumption)、標簽平滑、信息最大化等相關的知識點&#xff0c;本文采用一個MNIST10分類的數據集來進一步體會它們的效果。 案例實施 對比方法 純監督學習方法&…

聯邦學習聚合參數操作詳解

聯邦學習中常見的模型聚合操作&#xff0c;具體用于對來自多個客戶端的模型更新進行聚合&#xff0c;以得到全局模型。在聯邦學習框架下&#xff0c;多個客戶端在本地訓練各自的模型后&#xff0c;會將模型更新&#xff08;通常是模型的權重&#xff09;發送到中央服務器&#…

藍牙 BLE 掃描面試題大全(2):進階面試題與實戰演練

前文覆蓋了 BLE 掃描的基礎概念與經典問題藍牙 BLE 掃描面試題大全(1)&#xff1a;從基礎到實戰的深度解析-CSDN博客&#xff0c;但實際面試中&#xff0c;企業更關注候選人對復雜場景的應對能力&#xff08;如多設備并發掃描、低功耗與高發現率的平衡&#xff09;和前沿技術的…

基于Flask實現的醫療保險欺詐識別監測模型

基于Flask實現的醫療保險欺詐識別監測模型 項目截圖 項目簡介 社會醫療保險是國家通過立法形式強制實施&#xff0c;由雇主和個人按一定比例繳納保險費&#xff0c;建立社會醫療保險基金&#xff0c;支付雇員醫療費用的一種醫療保險制度&#xff0c; 它是促進社會文明和進步的…

機房斷電后 etcd 啟動失敗的排查與快速恢復實錄

目錄 機房斷電后 etcd 啟動失敗的排查與快速恢復實錄 背景與問題起因 報錯分析 解決方案&#xff1a;刪除 member 數據重新初始化 步驟 1&#xff1a;停止 etcd 容器或服務 步驟 2&#xff1a;刪除 member 目錄 步驟 3&#xff1a;重啟 etcd 服務 附加提醒 總結與后續…