Gulpを使ってファイルを保存するタイミングでPHP CS Fixerを実行する

Gulpを使ってファイルを保存するタイミングでPHP CS Fixerを実行する

June 21, 2016
php javascript gulp

PHP CS Fixerを実行するタイミングって皆さんどうしてますか?
PHP CS Fixerで快適PHPライフだとGit のコミットフックで実行していますね。

これでも良いとは思うんですが、個人的にはPHPファイルを保存したタイミングでPHP CS Fixerが実行できたら最高なんですよね。

Gulpで実行する

最初はPhpStormでなんとか出来ないかなぁーと思いFile watchersでなんとかしようと思いましたが、こいつはファイルを保存するタイミングじゃなくて、ファイル変更したタイミングなんですよね。
このタイミングで実行させると流石に辛いわけです。

悩んでたらTwitterでヒントを頂きました。

実際に設定してみる

最初はgulp-php-cs-fixer使おうと思いましたが、思ったように動作しないというか、READMEすらないので使い方がわからなかったです・・・。

今回は、変更のあったファイルのみにPHP CS Fixerを実行したいんですよね。
調べた所どうやらwatch.on()イベントを使えば、変更があったファイルのみPHP CS Fixerを実行することが可能のようです。

ということでgulpfile.js書いてみました。

これでターミナルからgulpコマンドを実行するだけで、phpファイル保存時にPHP CS Fixerが実行されます。

最後に

ちなみにSymfony2だとcomposer require fabpot/php-cs-fixerとかしとけばbinディレクトリにphp-cs-fixerが入ってくるので、

var command = __dirname+"/bin/php-cs-fixer fix " + event.path + " --config-file=" + __dirname + "/.php_cs"

とか書いとけばプロジェクトで共通に使えるかと思います。

ということで、PHP CS Fixerを快適に使ってより良いコードを書きましょう。

参考: これからはじめるGulp(3):gulp.watchでファイルの変更を監視しタスクを実行する

comments powered by Disqus