生活随笔
收集整理的這篇文章主要介紹了
在 NetBeans IDE 中调试 PHP 源代码
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
準備工作 要在適用于 PHP 的 NetBeans IDE 中成功調試 PHP 應用程序,您需要為進行 PHP 開發(fā)安裝并配置?PHP 引擎、Apache 本地 Web 服務器和 XDebug 調試器。
啟用 XDebug 安裝 XDebug 后,您必須在 PHP 引擎中啟用它。
啟用 XDebug:
找到 PHP 引擎所使用的?php.ini?文件。如果運行?phpinfo(),此文件將顯示在第一個表中的 "Loaded Configuration File"(已裝入的配置文件)表頭下。 在裝入的?php.ini?中取消注釋或添加以下行: zend_extension_ts="<path to the php folder>/php_xdebug-2.0.2-5.2.5.dll"xdebug.remote_enable=1xdebug.remote_host=127.0.0.1xdebug.remote_port=9000xdebug.remote_handler=dbgp 有關如何配置 XDebug 的詳細信息,請單擊此處。
注意: 請確保您指定的路徑與安裝過程中所確定的相應文件的位置匹配。
?
?
如果使用 XAMPP 包,則需要禁用 Zend 優(yōu)化器,因為它會阻止 XDebug。找到相關行,然后刪除它們或將其標記為注釋。
/xampplite/php/php.ini /xampplite/apache/bin/php.in 注意: 如果使用 XAMPP Lite,則需要對以下兩個?php.ini?文件進行上述更改:
如何使用 XDebug 進行 PHP 調試 如果在?php.ini?文件中啟用了 XDebug,XDebug 便可以隨時暫停和恢復 PHP 程序執(zhí)行。當程序執(zhí)行暫停時,XDebug 可以檢索有關當前程序狀態(tài)的信息,例如讀取程序變量的值。實際上,此過程可以用下列工作流來表示:
用戶在 PHP 源代碼執(zhí)行應該暫停的行上設置一個斷點。 當到達此行時,用戶按 F7 和 F8 鍵逐行執(zhí)行腳本,并檢查變量的值。 調試器窗口 啟動調試會話時,將在主編輯器窗口下打開一組調試器窗口。要添加新窗口,請選擇“窗口”>“調試”。可以使用下列窗口:
“局部變量”窗口,顯示已初始化的變量及其類型和值的列表。 “監(jiān)視”窗口,顯示用戶定義的表達式及其值的列表。 “調用棧”窗口,按倒序顯示被調用函數的列表。最后調用的函數將顯示在列表頂部。 “斷點”窗口,顯示設置了斷點的行所在的文件以及行號的列表。 “會話”窗口,顯示當前活動調試會話的列表。 “線程”窗口 “源”窗口 “HTTP 客戶端監(jiān)視器”窗口 調試會話 以下過程是典型調試會話的工作流。
運行調試會話:
啟動 IDE,運行項目,然后打開包含要調試的源代碼的文件。 將光標置于某一行上,您希望在該行之前自動執(zhí)行 PHP 腳本。 要設置斷點,請按 Ctrl-F8 組合鍵或選擇“調試”>“開啟/關閉行斷點”。 在“項目”窗口中,導航至當前項目節(jié)點,單擊鼠標右鍵,然后從彈出式菜單中選擇“調試”。IDE 將打開調試器窗口并在調試器中運行該項目,直至到達斷點為止。?注意: 如果當前項目設置為主項目,則可以選擇“調試”>“調試主項目”,按 Ctrl-F5 組合鍵或單擊?。 切換至“局部變量”窗口。該窗口顯示當前函數中已初始化的所有變量及其類型和值。 要查看該函數外部的變量值,請將光標置于此變量出現的某個位置上。工具提示會顯示變量值。 要逐行(包括所有被調用函數中的行)執(zhí)行程序,請按 F7 鍵或選擇“調試”>“步入”,然后在“局部變量”窗口中監(jiān)視這些變量值的更改。 要通過監(jiān)視表達式的更改來檢查程序邏輯,請定義一個新監(jiān)視: 要打開“監(jiān)視”窗口,請選擇“窗口”>“調試”>“監(jiān)視”,或按 Ctrl-Shift-2 組合鍵。將打開“監(jiān)視”窗口。 在“監(jiān)視”窗口中的任意位置單擊鼠標右鍵,然后從彈出式菜單中選擇“新建監(jiān)視”。將打開“新建監(jiān)視”窗口。 輸入監(jiān)視表達式,然后單擊“確定”。 現在,您便可以在調試過程中進行其他檢查。 要取消對某個函數中代碼的逐行執(zhí)行操作并跳至該函數調用后的下一行,請按 Ctrl-F7 組合鍵或選擇“調試”>“步出”。 要跳過對某個函數中代碼的逐行執(zhí)行操作,獲取該函數返回的值,并跳至該函數調用后的下一行,請按 F8 鍵或選擇“調試”>“步過”。 要暫停調試會話,請選擇“調試”>“暫停”。 要繼續(xù)調試會話,請選擇“調試”>“繼續(xù)”或按?。 要取消調試會話,請按?。 在程序結束時,調試器窗口會關閉。
樣例調試會話 此部分說明了一個標準的調試會話。
使用以下參數創(chuàng)建新的 PHP 項目: 項目類型 - PHP 應用程序 源位置 -?htdocs?文件夾的缺省位置 運行配置 - 本地 Web 站點 有關設置 PHP 項目的更多詳細信息,請參見設置 PHP 項目文檔。 在項目創(chuàng)建完成后,將光標置于“源文件”節(jié)點上,從彈出式菜單中選擇“屬性”,然后打開“調試”窗口。選中“調試服務器端 PHP”復選框。 要在會話過程中使用熱鍵,請將光標置于項目節(jié)點上,然后從彈出式菜單中選擇“設置為主項目”。 在?index.php?文件中,輸入以下代碼: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>NetBeans PHP debugging sample</title></head><body><?php $m=5; $n=10; $sum_of_factorials = calculate_sum_of_factorials ($m, $n); echo "The sum of factorials of the entered integers is " . $sum_of_factorials; function calculate_sum_of_factorials ($argument1, $argument2) { $factorial1 = calculate_factorial ($argument1); $factorial2 = calculate_factorial ($argument2); $result = calculate_sum ($factorial1, $factorial2); return $result; } function calculate_factorial ($argument) { $factorial_result = 1; for ($i=1; $i<=$argument; $i++) { $factorial_result = $factorial_result*$i; } return $factorial_result; } function calculate_sum ($argument1, $argument2) { return $argument1 + $argument2; }?> </body></html> 該代碼包含三個函數: calculate_factorial ()?函數 calcualte_sum ()?函數 calculate_sum_of_factorials ()?函數,該函數調用?calculate_factorial ()?函數兩次,再調用?calcualte_sum ()?函數一次,然后返回計算的階乘和。 在 PHP 塊的開頭設置一個斷點 (Ctrl-F8): <?php 要啟動調試,請單擊?。調試器將在斷點處停止。 按 F7 鍵三次。調試器將在調用函數?calculate_sum_of_factorials ()?的行上停止。“局部變量”窗口會顯示變量?$m?和?$n?以及它們的值: 要步入函數?calculate_sum_of_factorials (),請按 F7 鍵。調試器開始執(zhí)行函數?calculate_sum_of_factorials ()?中的代碼,然后在函數calculate_factorial ()?的調用處停止。? ? 現在,“局部變量”窗口將顯示函數?calculate_sum_of_factorials ()?中聲明的局部變量?$argument1?和?$argument2。? 按 F7 鍵。調試器開始執(zhí)行函數?calculate_factorial ()?中的代碼。“調用棧”窗口將按倒序顯示函數的調用棧,最后調用的函數位于列表頂部:? 按 F7 鍵步入循環(huán)。可在“局部變量”窗口中查看變量值。? 如果您確定代碼運行正常,請按 Ctrl-F7 組合鍵取消函數執(zhí)行。程序將在調用函數?calculate_factorial ()?后返回至下一行。?注意: 您也可以按 F7 鍵,直到程序執(zhí)行完函數?calculate_factorial ()?為止。您也會在調用該函數后返回至下一行。? 由于您剛檢查了函數?calculate_factorial (),并且確定其運行正常,因此可以跳過對該函數的再次執(zhí)行操作(“步過”)。要步過該函數,請按 F8 鍵。程序將在函數calculate_sum ()?的調用處停止。? 要步入函數?calculate_sum (),請按 F7 鍵。 要步過該函數,請按 F8 鍵。對于任何一種情況,調試器都會在函數?calculate_sum_of_factorials ()?的最后一行停止。 按 F7 鍵。調試器將移到?echo?語句所在的行上。 按 F7 鍵,直到調試器退出程序為止。將打開瀏覽器窗口并顯示程序執(zhí)行的結果: 使用其他監(jiān)視 可以定義其他監(jiān)視表達式來跟蹤程序的執(zhí)行。這有助于捕獲錯誤。
按如下所示更新代碼(將加號替換為減號): function calculate_sum ($argument1, $argument2) { return $argument1 - argument2; } 假定運算符的改變是由于拼寫錯誤造成的,而實際上您需要計算和。 選擇“調試”>“新建監(jiān)視”或按 Ctrl-Shift-F6 組合鍵。將打開“新建監(jiān)視”窗口。 輸入以下表達式,然后單擊“確定”。 $factorial1+$factorial2 “監(jiān)視”窗口中將顯示新表達式。 運行調試會話。當調試器在以下行停止時 return $result; 將“監(jiān)視”窗口中表達式的值與“局部變量”窗口中 $result 的值進行比較。它們應該相同,但在此示例中不同。? 此示例非常簡單,它為您提供了使用監(jiān)視的一些基本概念。
PHP 和 HTML 混合用例 您可以調試同時包含 PHP 塊和 HTML 塊的代碼。在樣例調試會話部分的示例中,對值進行了固定編碼。現在,將通過用于輸入值的 HTML 輸入表單來擴展該代碼。
在 <?php ?> 塊的上方添加以下 HTML 代碼: <form action="index.php" method="POST"> Enter the first integer, please: <input type="text" name="first_integer"/><br/> Enter the second integer, please: <input type="text" name="second_integer"/><br/> <input type="submit" name="enter" value="Enter"/> </form> 有關詳細信息,請參見?HTML 輸入表單。
將 <?php ?> 塊頂部的以下行: $m=5; $n=10; $sum_of_factorials = calculate_sum_of_factorials ($m, $n); echo "The sum of factorials of the entered integers is " . $sum_of_factorials; 替換為以下代碼: if (array_key_exists ("first_integer", $_POST) && array_key_exists ("second_integer", $_POST)) {$result = calculate_sum_of_factorials ($_POST["first_integer"], $_POST["second_integer"]); echo "Sum of factorials is " . $sum_of_factorials; } 在 <?php ?> 塊的開頭設置一個斷點,然后啟動調試會話。 按 F7 鍵。調試器將步入程序。同時,會打開瀏覽器窗口,但不顯示輸入表單。這是調試器的正確行為,因為它必須首先通過 Web 頁的整個源代碼,然后才能顯示該頁面。實際上,這意味著調試器通過了兩次代碼。第一次是調試器處理代碼以顯示 HTML 輸入表單。第二次是調試器逐步執(zhí)行 PHP 代碼。 按 F7 鍵,直到調試器到達程序末尾并且打開輸入表單為止。 填寫該表單,然后單擊 Enter 鍵。將繼續(xù)調試會話(如樣例調試會話部分中所述)。
總結
以上是生活随笔 為你收集整理的在 NetBeans IDE 中调试 PHP 源代码 的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔 網站內容還不錯,歡迎將生活随笔 推薦給好友。