PHP_CodeSniffer基本介紹
在維護程式時,最糟的狀況,莫過於該程式中毫無一行註解。最後,維護者可能必須要一行行追程式,已瞭解該程式的處理流程。或者,程式碼毫無編排、命名方式(全都是 i,x,y 等無意義字母)。這…維護時就是一件累人的工作…
也許,會有人要求必須在程式內寫註解(如phpDoc)。不過,又該如何確保程式內是否真的寫?或者…程式碼的撰寫風格是否有符合團體所要求的?
於是,需要一些工具來協助。以PHP為例,可以使用PHP_CodeSniffer
首先,看一下PHP_CodeSniffer官方網站上的定義
PHP_CodeSniffer能呈現什麼資訊?以及有哪些報表模式?不妨直接看官網上Reporting內的各式呈現方式。當中,還有SVN Blame耶(請見Printing an SVN Blame Report標題)
註:Blame,在tortoisesvn(小烏龜)中,中文翻譯為『譴責』 XD
在實務中,coding standards有很多種。說不定還有屬於自己的,或者因為採用某framework,因此必須符合該framework的規範。因此,PHP_CodeSniffer提供設定,讓我們在執行檢查時,能切換不同的coding standards作為檢查的依據。以下,則列出相關的操作
以上,只是列出最基本的操作。PHP_CodeSniffer的使用不只如此。想多瞭解並加以利用者,務必參考官網上的說明
也許,會有人要求必須在程式內寫註解(如phpDoc)。不過,又該如何確保程式內是否真的寫?或者…程式碼的撰寫風格是否有符合團體所要求的?
於是,需要一些工具來協助。以PHP為例,可以使用PHP_CodeSniffer
首先,看一下PHP_CodeSniffer官方網站上的定義
PHP_CodeSniffer is a PHP5 script that tokenises and "sniffs" PHP, JavaScript and CSS files to detect violations of a defined coding standard. It is an essential development tool that ensures your code remains clean and consistent. It can also help prevent some common semantic errors made by developers.
有注意到嗎?PHP_CodeSniffer不支援PHP4
如何安裝PHP_CodeSniffer
PHP_CodeSniffer的安裝非常簡單,一行指令就結束…- pear install PHP_CodeSniffer
如何使用PHP_CodeSniffer
基本操作分為兩種…- # 檢查單一程式
- phpcs /prog/myprog.php
- # 檢查整個目錄下的程式
- phpcs /prog/
註:Blame,在tortoisesvn(小烏龜)中,中文翻譯為『譴責』 XD
在實務中,coding standards有很多種。說不定還有屬於自己的,或者因為採用某framework,因此必須符合該framework的規範。因此,PHP_CodeSniffer提供設定,讓我們在執行檢查時,能切換不同的coding standards作為檢查的依據。以下,則列出相關的操作
查詢目前安裝哪些coding standards
- phpcs -i
- The installed coding standards are MySource, PEAR, PHPCS, Squiz, Zend and CodeIgniter
設定coding standards
執行檢查時,切換不同的coding standards作為檢查的依據- $ phpcs --standard=PEAR /prog/myprog.php
更換預設所使用的coding standards
當然,也可以設定預設值。以下範例,將預設coding standards更換為我後續安裝的CodeIgniter- phpcs --config-set default_standard CodeIgniter
- # 註:執行本參數,需要寫入的權限
顯示是哪支sniff code所檢查
做後續調整設定時,會需要使用本參數- phpcs -s /prog/myprog.php
以上,只是列出最基本的操作。PHP_CodeSniffer的使用不只如此。想多瞭解並加以利用者,務必參考官網上的說明
留言