昨日の記事でphpmdという静的解析ツールを調査したんですが、それ以外にも規約にのっとっているかどうかコーディングをチェックできるツールはあります。
PHP_CodeSniffer
https://github.com/squizlabs/PHP_CodeSniffer
結構歴史のあるライブラリのようですね。
PHP_CodeSniffer のインストール(composerで編)
PHP Code SnifferでCakePHPのコーディング規約をチェックする方法
インストール
1 2 3 4 5 6 7 |
"require" :{ #これがCodeSnifferの本体になります。 "squizlabs/php_codesniffer": "2.*", #新しい規約を追加したい場合は入れてあげましょう。 #私はCakePHPのものを入れました。 "cakephp/cakephp-codesniffer":"2.*" } |
この状態で vendor/bin/phpcs -i と入力すると下記のようにコーディング規約が表示されます。この時点ではまだCakePHPの規約は入れていないので含まれていません。
1 2 3 4 5 6 7 |
The installed coding standards are PSR2, PEAR, PHPCS, MySource, PSR1, Zend and Squiz この後下記のように設定してあげ(規約のほうはフルパスで入力しないとエラーが出ました・・・) vendor/bin/phpcs --config-set installed_paths /var/www/html/sampleProject/vendor/cakephp/cakephp-codesniffer もう一度 vendor/bin/phpcs -i を入力すると下記のように表示されCakePHPの規約がセットされているのがわかると思います。 The installed coding standards are PSR2, PEAR, PHPCS, MySource, PSR1, Zend, Squiz and CakePHP |
使い方は/vendor/bin/phpcsのあとにファイルを指定しあげればいいのですが、様々なオプションを入力できます。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
例 vendor/bin/phpcs --report=summary --standard=CakePHP src/ PHP CODE SNIFFER REPORT SUMMARY ---------------------------------------------------------------------- FILE ERRORS WARNINGS ---------------------------------------------------------------------- /var/www/html/sampleProject/src/Util/hogehoge.php 240 9 ・・・・・・・・・・・・・・・・・・ ---------------------------------------------------------------------- A TOTAL OF 4148 ERRORS AND 113 WARNINGS WERE FOUND IN 28 FILES ---------------------------------------------------------------------- PHPCBF CAN FIX 3380 OF THESE SNIFF VIOLATIONS AUTOMATICALLY ---------------------------------------------------------------------- |
ちなみにphpcbfを使えば一気に直すこともできます。