#phpcpd
Explore tagged Tumblr posts
hikariru · 8 years ago
Text
GrumPHPでコードの治安を守りたい
Qiitaさんからお引っ越しです。
GrumPHPとは
commit前にテスト走行やlintなどのタスクを自動実行してくれるcomposerプラグインです。 皆さんおなじみのPHPUnit、PHPCS、PHPMDだけでなくPHPSpecやBehatにも対応しているため、気軽にコードの治安を維持することができます。
(品質って単語を使うとQA界隈の怖い人たちに怒られそうなのであえてふんわりした言葉を使ってます。)
使い方
1. 依存パッケージに追加
composer require --dev phpro/grumphp
2. grumphp.ymlを書く
私が普段使ってるgrumphp.ymlを置いときます。 書き方は公式のドキュメントが充実しているので割愛します。
3. git hookを追加
下記コマンドを叩くと.git/以下にpre-commitとcommit-msgが追加されます。 あとはいつものようにgit commitするだけ!
./vendor/bin/grumphp git:init
4. OKなとき
おじさんのもっさりした笑顔と共にcommitされます。
Tumblr media
5. NGなとき
怒られてcommitできません。こわい。
Tumblr media
pros
チームで同じhookを簡単にシェアできる
チームのリポジトリにgrumphp.ymlをチェックインすれば、チーム内で同じタスクを走行してからコミットできるようになるため治安のレベルを揃えやすくなります。
cons
チームでGrumPHPの導入を提案したいのは山々なのですが 下記の壁があって今のところ一人で使うにとどめています。。。
Vagrantとの連携がちょっと面倒
hooks_preset: vagrantとgrumphp.ymlに記述すればgit:init時にVagrant用のhookが生成されます。 しかし、生成されるスクリプトは現在のディレクトリにVagrantfileがある前提のものなので、もし作業ディレクトリ外にあるVagrantを利用している場合にはhookを直接書き換えなくてはいけません。 このあたりもう少し個々人の環境に合わせたカスタマイズがしやすくなるといいですね。
長期間にわたって多くの人が開発・保守していくコードなので、 チームみんなでコツコツと(でも楽ちんに)治安改善に取り組んでいけたらいいなあと思っています。
0 notes