こんにちは、コバヤシです。
今回はPhpStormでPHP_CodeSnifferを使ってPSR12でチェックする方法について書きたいと思います。
PHP_CodeSnifferとは
コード規約をチェックするツールです。 Composerでインストール出来ます。
PHP_CodeSnifferをインストール
Macにglobalにインストールします。
composer global require "squizlabs/php_codesniffer=*"
~/.composer/vendor/bin/phpcsにインストールされるはずです。
$ phpcs -i
The installed coding standards are PEAR, Zend, PSR2, MySource, Squiz, PSR1 and PSR12
PSR12が使えるようですね。
PhpStormの設定
Preferences > 言語&フレームワーク > 品質ツールを開きます。
構成:localの横の...を押します。
PHP_CodeSniffer pathに、PHP_CodeSnifferのpathを入力もしくは選択します。
「検証」をクリックして「OK」が出れば問題ありません。
エディター > インスペクション > PHP > 品質ツール > PHP_CodeSniffer validationをチェックします。 Coding standardのプルダウンから「PSR12」を選択します。
私の場合はコード規約のエラーを目立たせる為「エラー」を選択しています。
あとは、「適用」を押せば完了です。
一応これで設定は完了なのですが、 PSR12そのままでは厳しいルールもあるので、カスタマイズをしてみます。
チェックのルールをカスタマイズする
以下のような、xmlファイルを作成し任意の場所に保存します。
<ruleset name="PSR12_Custom"> <description>Customization PSR12 coding-conventions</description> <rule ref="PSR12"> <exclude name="Generic.Files.LineLength.TooLong"/> <exclude name="PSR1.Classes.ClassDeclaration.MissingNamespace"/> </rule> </ruleset>
rule ref="PSR12"で使用するルールを指定し、excludeでrefで指定したルールから除外するルールを指定します。 上記のxmlでは1行の文字数のチェックとClassのNamespaceチェックを外しています。
これをPhpStormのPHP_CodeSniffer validationで指定します。 Coding standardに「Custom」を選択します。そして...を押して上記で作成したカスタム用のxmlを指定します。
これで、プルダウンにPSR12_Customが出てくるはずだったのですが、、出てこず。。
一旦「適用」を押してPhpStormを再起動したところ、プルダウンに現れました。
プルダウンから作成したルール名を選択して、「適用」を押せば完了です。
まとめ
以上の設定でPSR12の規約に違反したコードを記述すれば、即座にエラーとして表示されるようになりました。 これでコーディング規約に沿った開発が捗りそうです。
次週は夏季休暇のため、次回の更新は8月19日(水)となります。