PHP_CodeSniffer 是套檢查 PHP 程式碼是否符合規範的工具。
拿 WordPress 3.8.1 的 index.php 跑 PSR-2 測試。
想要測試的人可以用 Vagrant 安裝測試,我用 Docker 弄了老半天弄不起來,就跑去用 Vagrant 測試了...
(話說回來,Vagrant 與 Docker 真的是測試的神器,反正要弄一個 Ubuntu 平台上測試就是拿這兩個東西出來測...)
由於系統內的 PHP_CodeSniffer 不一定夠新,舉例來說,Ubuntu 12.04 的 php-codesniffer 只有 1.1.0,而掃 PSR-1 的程式出現在 1.3.5,PSR-2 出現在 1.4.0。
安裝 c9s 所維護的 phpbrew 通常是還蠻常見的選擇。裝完後再用 pear install PHP_CodeSniffer
裝進去就有 phpcs 可以用了。
phpcs 預設是用 PEAR standard,可以指定 --standard=PSR2
強迫他使用 PSR-2 規則:
phpcs --standard=PSR2 foo.php
也可以直接強迫換成 PSR-2,然後再看設定有沒有改成功:
phpcs --config-set default_standard PSR2 phpcs --config-show
除了可以檢查單一檔案外,也可以丟路徑進去整個檢查:
phpcs foo/