1 . PHPUnit
測試在軟件開發中是相當重要的一環,但很多開發者都只是給予很少的時間去測試,因為這工作的確相當耗時,枯燥並且容易出錯。為了解決以上問題,自動化測試工具能讓開發者編寫一系列測試腳本,這些腳本能容易地執行,並且可以根據計劃任務去執行。這些自動化測試工具通常提供了測試報告,裡面詳細描述了每次測試的結果。PHP開發者在自動測試化方面,有一個相當不錯的測試框架PHPUNIT。基於非常流行的測試驅動開發方法,如xUnit,PHPUNIT允許開發者使用PHP的語法去編寫測試用例,然後用很簡單的命令行工具去執行測試。甚至你可以將PHPUNIT與一些持續集成工具如phpUnderControl整合(http://phpundercontrol.org/),這在本文稍侯會討論。如果你不熟悉phpunit,可以查看之前的文章Use PHPUnit to Implement Unit Testing in Your PHP Development(http://www.PHPbuilder.com/columns/Jason_Gilmore052510.php3),詳細講述了如何使用PHPunit。
2. Phing
隨著WEB開發項目變得越來越復雜,開發者面對一大堆部署的任務,這些任務不僅僅是從開發者的機器上將文件傳到生產服務器上那麼簡單了。比如避免上傳開發環境的文件,如圖片模版,處理服務器指定文件的權限和參數配置,象用戶名口令,以及如何當發生變更錯誤時盡快恢復,這些問題都是開發者經常要碰到的。為了解決這些問題,開發者使用了專門的構建工具,它能使文件的傳輸過程更高效,因為它只同步傳輸改變過的文件。構建工具也能夠很容易根據部署的環境而定制。如果你目前還沒有利用構建工具,可以看看Phing,(http://phing.info/)這是一個基於apache Ant的構建工具。它支持所有的操作系統,能很容易的使用XML語法進行配置,能與象CVS,SVN等版本控制工具整合,甚至能從你的自定義庫中創建PEAR的包。
3. GitHub
我多次提到了使用版本控制工具的好處。版本控制能給項目帶來很多好處,包括能建立代碼的實驗分支,回滾不需要的變更,能查看某個文件最近被哪些團隊成員改動過,以及通過日志監視進度。雖然現在有很多開源的版本控制工具,但Git目前是我最喜歡的。Git 的興起很大程度上得益於一個提供第三方托管服務的GitHub(http://github.com/)網站,它為開發者提供了一系列的托管服務。GitHub滿足了開發者的需要,甚至為開源項目提供了主機托管的服務。現在已經超過一百萬的托管應用在上面了,GitHub為開發者提供了極具價值的服務,讓他們不用花費大量金錢和時間去尋找第三方的托管服務。
4. FirePHP
很多開發者對Firefox的插件Firebug是非常熟悉的,它能讓你很容易地檢查一個網頁的Html,CSS和Javascript的語法問題。使用FirePHP(http://www.firephp.org/),你同樣能用象FireBug的界面去檢查PHP語法的錯誤和所選擇的分析數據。想了解更多Firebug和FirePHP的功能,可以查看"Firebug: Add Browser-based Debugging to Your Ajax Development".(http://www.developer.com/lang/jscript/article.PHP/10939_3879711_2/Firebug-Add-Browser-based-Debugging-to-Your-AJax-Development.htm)。
5. XDebug
使用了象PHPUNIT這樣的測試工具後,能在你寫完代碼後幫助捕捉到錯誤,另一方面有時候你需要使用一些幫助工具去幫助了解這些問題的原因。很多PHP開發者使用一個不錯的調試工具XDebug(http://xdebug.org/),它能幫助你檢查代碼的狀態,並提供工具去跟蹤及剖析代碼性能,查看對象內容和其他功能。如果想熟悉XDebug,可以查看之前的文章
A Sanity-Saving Debugging Solution for Your PHP Development(http://www.phpbuilder.com/columns/Jason_Gilmore051410.PHP3)。
6. PHP擴展和應用庫
盡管你自己可能認為自己的想法是很唯一和特別的,但還是很大機會你正在努力編寫的代碼,之前已經有不少其他的程序員已經編寫出來了。為了幫助開發者克服這樣的障礙,PHP開發者們定期貢獻PHP的擴展和應用程序庫,如著名的PEAR。PEAR裡包含了560個包,能提供快捷的解決方案,如緩存,加密,用戶驗證和支付處理等。你總可以在PEAR中總能找到適合你的解決方案。
為了幫助管理PEAR包應用,可以安裝PEAR包管理工具(http://pear.PHP.Net/manual/en/installation.getting.PHP),它提供了命令行的界面去安裝、升級和刪除包。
7. PHP_CodeSniffer
正如關於編輯器的爭論一樣,對於編碼風格的爭論更具諷刺。雖然如此,PEAR提倡的編碼標准看上去在PHP社區取得了一席之地,然而,你或者你所在的團隊依然可能不采用這樣標准約定,這將導致風格不一致的代碼。
為了避免代碼風格的不一致,可以考慮安裝PHP_CodeSniffer (http://pear.PHP.Net/package/PHP_CodeSniffer),它是一個很不錯的PEAR包,它能分析PHP程序,JavaSCRIP和CSS文件並且檢查出哪些是與定義好的代碼風格相違背的。雖然可以定義你自己的編碼風格,但PHP_CodeSniffer的編碼風格是十分方便的。
8. PHPDocumentor
從晦澀的代碼注釋中去理解代碼,這是十分沮喪的任務,即使代碼是你自己以前編寫的。就象測試,寫文檔依然是開發者希望逃避的幾個任務之一。為了減輕這樣的痛苦,可以考慮使用象
phpDocumentor這樣的自動文檔化工具。phpDocumentor支持簡單的文檔規則語法,可以解析你的代碼並且生成友好的文檔。要了解更多關於phpDocumentor可以查看本人所寫的導學文章Documenting PHP Code with PHPDocumentor
(http://www.developer.com/lang/php/article.php/3440261/Documenting-PHP-Code-with-PHPDocumentor.htm),並可以到PHPDocumentor的網站下載最新的版本使用。
9. PHP_BeautifIEr
另一個阻礙閱讀代碼的因素是不好的代碼格式,因為在PHP這樣的腳本語言中,很容易造成不恰當的縮進而形成不好的代碼格式。你可以使用PEAR中的包PHP_BeautifIEr
(http://pear.PHP.Net/package/PHP_BeautifIEr)去自動化地格式化代碼。
10. PHPUnderControl
如果你正在考慮上述提到的工具,那麼你可以下載phpUnderControl這個工具,它基於CruiseControl構建。phpUnderControl包括了多個PHP工具,如phpunit,PHPdocumentor,並提供了統一的界面管理。
小結
你還有什麼喜愛的能提高PHP編碼效率的工具介紹呢?可以在評論中告訴我。