今天就跟大家聊聊有關(guān)如何進(jìn)行PhpStorm 代碼調(diào)試,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
創(chuàng)新互聯(lián)建站是一家專(zhuān)注于網(wǎng)站設(shè)計(jì)制作、做網(wǎng)站與策劃設(shè)計(jì),南鄭網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)建站做網(wǎng)站,專(zhuān)注于網(wǎng)站建設(shè)10年,網(wǎng)設(shè)計(jì)領(lǐng)域的專(zhuān)業(yè)建站公司;建站業(yè)務(wù)涵蓋:南鄭等地區(qū)。南鄭做網(wǎng)站價(jià)格咨詢(xún):18982081108
前面的教程大多圍繞的是如何提高 PhpStorm 的日常編碼效率,無(wú)論是代碼導(dǎo)航、插件、快捷鍵還是代碼模板、代碼重構(gòu),都是圍繞著效率展開(kāi)。接下來(lái),學(xué)院君來(lái)給大家介紹一些效率以外的主題,比如調(diào)試、測(cè)試以及編碼風(fēng)格。
首先我們來(lái)看調(diào)試。
在 PHP 生態(tài)中,最有名的調(diào)試工具莫過(guò)于 Xdebug:
所以,接下來(lái),我們就以 Xdebug 為例演示如何在 PhpStorm 中對(duì) PHP 代碼進(jìn)行調(diào)試。
使用 Xdebug 對(duì)代碼進(jìn)行調(diào)試前,先要安裝對(duì)應(yīng)的 PHP 擴(kuò)展。
以 Mac 系統(tǒng)為例,我們可以在終端窗口通過(guò) php -m
指令查看是否已經(jīng)安裝 Xdebug 擴(kuò)展:
在 Zend Mdoules 列表中可以看到「Xdebug」即表示安裝成功。如果還沒(méi)有安裝,可以參考 Xdebug 官方文檔進(jìn)行安裝。
除此之外,還需要通過(guò)配置文件對(duì) Xdebug 盡心配置,可以通過(guò) php --ini
命令查看 PHP 配置文件路徑:
這里,我們?cè)?/usr/local/etc/php/7.4/php.ini
中配置 Xdebug 配置如下(當(dāng)然,你可以選擇在 /usr/local/etc/php/7.4/conf.d
目錄下新建一個(gè) ext-xdebug.ini
對(duì) Xdebug 進(jìn)行單獨(dú)配置,PHP 會(huì)自動(dòng)加載對(duì)應(yīng)的配置文件):
[XDebug]
zend_extension="xdebug.so"
xdebug.remote_enable=1
xdebug.remote_host=localhost
xdebug.remote_port=9001
xdebug.remote_autostart=1
xdebug.profiler_enable=1
xdebug.profiler_output_dir="/tmp"
xdebug.idekey=PHPSTORM
這里我們啟用了遠(yuǎn)程監(jiān)聽(tīng)(包括 IP 地址和端口設(shè)置)、腳本分析、以及設(shè)置 idekey
為 PHPSTORM
,關(guān)于調(diào)試和分析配置項(xiàng)細(xì)節(jié)和含義,請(qǐng)參考 Xdebug 官方提供的調(diào)試設(shè)置和腳本分析文檔。
完成以上準(zhǔn)備工作后,可以在任意空目錄下新建 index.php
,在其中編寫(xiě)如下 PHP 腳本:
phpinfo();
?>
然后運(yùn)行 php -S localhost:9000
來(lái)啟動(dòng) PHP 內(nèi)置 HTTP 服務(wù)器,在瀏覽器訪(fǎng)問(wèn) http://localhost:9000
,查看 PHP 中 Xdebug 擴(kuò)展配置是否生效:
接下來(lái),我們就可以在 PhpStorm 中通過(guò) Xdebug 來(lái)調(diào)試 PHP 代碼了。
開(kāi)始進(jìn)行代碼調(diào)試前,先在 Preferences | Languages & Frameworks | PHP 中配置 PHP CLI 解釋器:
如果你的 PhpStorm 中當(dāng)前 CLI Interpreter 一欄顯示
的話(huà),可以點(diǎn)擊右側(cè)「…」 按鈕添加:
注:你也可以在這里看到相應(yīng)的 Debugger 擴(kuò)展是 Xdebug 2.9.6 版本,如果這里沒(méi)有檢測(cè)到對(duì)應(yīng)的 Xdebug 擴(kuò)展信息,表明該版本的 PHP 沒(méi)有安裝這個(gè)擴(kuò)展,需要參考上面的安裝設(shè)置步驟進(jìn)行安裝配置。
在 Name 框輸入 CLI 解釋器的名稱(chēng),在 PHP executable 框輸入當(dāng)前系統(tǒng) PHP 二進(jìn)制文件的路徑即可,如果不知道,可以在終端窗口運(yùn)行 which php
命令查看。
接下來(lái),我們先來(lái)看一個(gè)本地 PHP CLI 腳本代碼的調(diào)試。我們首先編寫(xiě)一段測(cè)試代碼 multi.php
,這段代碼的作用是打印九九乘法表:
// 通過(guò)二維數(shù)組生成九九乘法表
$multi = [];
for ($j = 0; $j < 9; $j++) {
for ($i = 0; $i < 9; $i++) {
$n1 = $i + 1;
$n2 = $j + 1;
if ($n1 < $n2) { // 摒除重復(fù)的記錄
continue;
}
$multi[$i][$j] = sprintf("%dx%d=%d", $n2, $n1, $n1 * $n2);
}
}
// 打印九九乘法表
foreach ($multi as $row) {
foreach ($row as $item) {
printf("%-8s", $item); // 位寬為8,左對(duì)齊
}
printf("\n");
}
我們?cè)诮K端窗口執(zhí)行這段代碼,打印結(jié)果如下:
如果在代碼執(zhí)行過(guò)程中報(bào)錯(cuò),或者想要了解代碼執(zhí)行的完整流程,可以在代碼編輯區(qū)從指定位置設(shè)置斷點(diǎn)(從任意你想要調(diào)試的位置開(kāi)始):
然后在 PhpStorm 導(dǎo)航菜單點(diǎn)擊 Run->Debug…(或者通過(guò)快捷鍵 Ctrl + Option + D):
在彈出窗口選擇要調(diào)試的 PHP 腳本:
即可進(jìn)入 PHP CLI 腳本的調(diào)試流程:
接下來(lái),你可以點(diǎn)擊上圖紅框內(nèi)的按鈕進(jìn)行斷點(diǎn)調(diào)試,將鼠標(biāo)移到對(duì)應(yīng)的按鈕上會(huì)出現(xiàn)提示文本,比如 Step Over 表示跳過(guò)當(dāng)前這一行,Step Into 表示進(jìn)入函數(shù)內(nèi)部等等,這里我們可以點(diǎn)擊通過(guò) Step Into(第二個(gè)按鈕)逐行調(diào)試代碼,在調(diào)試過(guò)程中,你可以實(shí)時(shí)看到當(dāng)前作用域內(nèi)變量的值:
這樣,可以及時(shí)感知代碼當(dāng)前的執(zhí)行狀態(tài),從而對(duì)出現(xiàn)問(wèn)題的地方進(jìn)行定位和排查原因。如果代碼邏輯很復(fù)雜,變量很多,還可以通過(guò)將關(guān)心的變量添加到監(jiān)控區(qū)進(jìn)行查看:
看完上述內(nèi)容,你們對(duì)如何進(jìn)行PhpStorm 代碼調(diào)試有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。