1. 程式人生 > >執行/除錯你的PHP程式碼

執行/除錯你的PHP程式碼

前言

沒有任何一名程式設計師可以一氣呵成、完美無缺的在不用除錯的情況下完成一個功能或模組。除錯實際分很多種情況。本篇文章我分享下自己在實際開發工作中的經驗,我個人理解,除錯分三種,注意我所講的是除錯並非測試

  • 功能除錯
  • 元件除錯
  • 片段除錯

功能除錯是指在完成一個功能或者正在完成功能的過程中進行的錯誤、邏輯、結果的測試

元件除錯是指將一個正在開發測試的外掛、類進行錯誤、邏輯和結果的測試

片段除錯是指將一段程式碼片段、函式、變數的預期和結果的測試

接下來我們看下本章列出的一些除錯方法

暴力除錯

這種方式簡單粗暴,一般PHP程式設計師都會用,那就是瀏覽器除錯,在編輯器內寫完程式碼後隨後開啟萬能的瀏覽器輸入地址開始除錯程式碼。

斷點除錯

說實在的,這種方式如果僅僅是看看輸出結果,完全沒必要,看似高大上實際浪費時間經歷,一般我都會在程式碼塊寫好之後跑一遍debug,檢查一下流程和結果是否在我的預期內或者遇到了某些邏輯問題無法察覺,還是選擇斷點除錯比較靠譜,省時省力。最厲害的程式設計師也有懵逼的一刻不是嗎?

命令除錯

如果你在官網或者github上下載了一段程式碼片段,急於除錯但還不願意將程式碼片段放入專案中或者新開闢一個目錄,完全可以使用php命令去執行這個程式碼塊


php -f filename.php

如果程式碼片段較短,你可以使用


php -r "code ..."

執行執行PHP程式碼

片段除錯

當你突然想起一個方法或者演算法急於去驗證它,但又不願意開啟編輯器或者執行php自帶的命令列的話。你可以選擇使用psysh工具去執行驗證你的想法,這個工具安裝十分簡單


Psy Shell v0.8.17 (PHP 7.1.14 — cli) by Justin Hileman
New version is available (current: v0.8.17, latest: v0.9.6)
>>> date('Y-m-d H:i:s',time())
=> "2018-08-09 14:18:10"
>>>

下載地址 : https://psysh.org/

測試除錯

這是一個嚴肅的除錯方法,很多程式設計師都認為功能模組、元件開發完就結束的任務,隨後交給測試人員去測試就好了。其實並不然,有些隱藏的bug或者致命錯誤、邏輯錯誤、系統錯誤(例如開啟了無用的執行緒,未使用的變數、方法、類等等)是無法被測試出來的。實際作為一名程式設計師,開發功能的流程是這樣的。


理解需求 -> 分解需求 -> 整理邏輯 -> 設計程式碼 -> 敲程式碼 -> 除錯 -> 測試

如果最後一步你從來沒有做過,那你只能是半個程式設計師。 測試我推薦使用PHPunit,更好的去理解自己的程式碼,才是一個合格的程式設計師。

編輯器除錯

感覺講這個有點廢話了,如果你感覺開啟命令列然後輸入 php xxxx 特別費勁的話,你也可以選擇使用編輯器自帶的除錯,一般像sublime,visual Studio Code , PHPStrom 都會自帶的除錯工具,其原理依舊是呼叫 php -r 但總比開啟命令列輸入命令要快的多。

致謝

這並不是一篇醞釀了很久的文章,是在我日常的開發中經常使用的幾種除錯方法。
感謝你看到這裡,希望本篇文章可以幫助到你,有什麼問題可以在評論區留言。謝謝