- 2012-05-22 (火) 14:19
- PHP
PHPソースをコーディング規約に合わせて修正してくれるツール「PHP Coding Standard Fixer」を試してみました。
PHPでコーディング規約チェックツールとしては PHP_CodeSniffer が有名です。PHP_CodeSniffer はソースをチェックして、問題点を指摘してくれるのですが、ソースの修正は自分で行う必要があります。
PHP Coding Standard Fixerは、コーディング規約チェックだけではなく、規約に従っていないソースを修正してくれるツールです。
PHP Coding Standard Fixerを使う
インストール
インストールは簡単で、githubで公開されている php-cs-fixer.phar ファイル をダウンロードしてくるだけです。
実行する
ダウンロードしたphp-cs-fixer.pharファイルをphpコマンドで実行します。
第2引数には対象のPHPファイル、もしくはPHPソースディレクトリを指定します。ディレクトリを指定した場合は、そのディレクトリ以下の全てのソースが修正対象となります。
$ php php-cs-fixer.phar fix /path/to/dir $ php php-cs-fixer.phar fix /path/to/file
コーディング規約(修正ルール)には PSR-1, PSR-2 の一部のがデフォルトで含まれています(PSR-1, PSR-2はまだ策定中:2012/05/22)。–level オプションで適用するコーディング規約を指定することができます。–levelを指定しない場合は、–level=allと同じになります。
$ php php-cs-fixer.phar fix /path/to/file --level=psr1 $ php php-cs-fixer.phar fix /path/to/file --level=psr2 $ php php-cs-fixer.phar fix /path/to/file --level=all
実際に適用されるルールはgithubに記述があるので、こちらを参考にして下さい。
https://github.com/fabpot/PHP-CS-Fixer
PHPソースを修正してみる
試しに以下のようなソースで試してみました。
このソースに php-cs-fixer.phar を実行します。
$ php php-cs-fixer.phar fix php-cs-fixer-sample.php #!/usr/bin/env php 1) /path/to/php-cs-fixer-sample.php
修正されたソースです。なにやら変更されていますね。主な変更箇所は以下です。
- 不要なuse文を削除
- インデントが4spaceに
- クラス宣言の開始ブレースが次行に
- PHP開始タグが <? から <?php に
- return文の前行を一行開ける
Vimプラグイン
Vimプラグインが公開されており、Vim上からPHP Coding Standard Fixerを実行することができます。
https://github.com/stephpy/vim-php-cs-fixer
自動で修正は楽
まだツール自体が荒削りで、対応しているルールが少ない、対応ルールとして挙げられているものが適用されなかったりしますが、発想としては面白いツールだと思います。日々開発しながら使っていけば、自然とコーディング規約に沿ったソースにしていけるので、これは便利です。
このツールでは実際にソースを変更してしまうので、万が一を考えて、修正後は自動テストを実行するようにしておくと安心ですね。
- Newer: Macで一番簡単にPHP5.4をインストールする方法
- Older: PHPカンファレンス関西2012を開催しました