Home > PHP > PHPソースをコーディング規約に合わせて修正してくれるPHP Coding Standard Fixer

PHPソースをコーディング規約に合わせて修正してくれるPHP Coding Standard Fixer

  • 2012-05-22 (火) 14:19
  • PHP
この記事の所要時間: 319

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

自動で修正は楽

まだツール自体が荒削りで、対応しているルールが少ない、対応ルールとして挙げられているものが適用されなかったりしますが、発想としては面白いツールだと思います。日々開発しながら使っていけば、自然とコーディング規約に沿ったソースにしていけるので、これは便利です。

このツールでは実際にソースを変更してしまうので、万が一を考えて、修正後は自動テストを実行するようにしておくと安心ですね。

Pocket

follow us in feedly

Home > PHP > PHPソースをコーディング規約に合わせて修正してくれるPHP Coding Standard Fixer

検索
フィード
メタ情報

Return to page top