PHPお手軽スタートキットを作った

先日、色々と調べごとをした結果を踏まえて「よ〜し、いっちょ自分でコード書いて試してみっかな!ライブラリでも作るかい!!」って気分になりまして。
その際に↓みたいなツイートをしていたのです。この辺りの”標準”みたいなのあんま分かってないな〜って。

いちいち「何が必要かな・・?」って考えるの結構ストレスになりそう。CIとかテスト周りとか整えるのも面倒くさくない?
そんな事をボヤボヤと考えている内に「そういえばGitHubにテンプレートプロジェクトって機能があったよね、使ったこと無いな」と思ったので、「ぼくのかんがえる最低限整ったPHPプロジェクトの雛形」を作ってみました。

github.com (コミットがメッセージも切り方も適当すぎてぶん殴られそうですが・・)

「今どきなPHPプロジェクトってどういう感じなんだろ?」っていうのにも興味があり、自分なりに考えて”それっぽいやつ”は入れてみたつもり。

なお、必要なツールを考えるにあたってこのPHP QAツールがすごい!2019を参考にさせていただきました🙌

なにができるの

  • PHPの実行環境としてDockerfileを入れてある
    • IDEから叩くような想定。というかPhpStormのCLI Interpreter
    • 一緒にmysqlも入れた、docker-composeで使う
  • ✅ ↑にXdebugが入れてある
  • PHPUnitをサクッと動かせるようにphpunit.xmlを入れてある
    • 地味に書き方忘れません?
  • PHP_CodeSniffer, PHPStan, Psalmも入れてある
    • 「最初から入ってれば負担も少ないはずだ」と思って、レベルはぎっちぎちにした
    • phpcsはPSR-12とSlevomatCodingStandardベース、PSR-12とぶつかるルールとか一部緩和
    • phpstan-strict-rulesとphpstan-phpunit入れた
    • psalm/plugin-phpunitも入れた
  • GitHub Actionsでphpunit phpcs psalmを叩くようにしてある
  • ✅ ↑を実行した時にreviewdogでコメント飛ばすようにしてある

作ってて思ったこととか

  • とりあえず「最低限」ってレベルならコレでいけそ、って感じにはなった
    • 色々と触りながら育てていく前提
    • lint周りとか色々と気になる部分出てきそう
  • GitHub Actions自分で触ったこと無いんだよな〜〜*1やりたいな〜って気持ちもあったので、少し欲求が満たされた。良かった
    • CIの設定ファイルだけ入れておけばすぐに動くの便利だな、すげーやGitHub Actions
    • 毎回Dockerイメージをbuildしてるからキャッシュとかした方が良いんかな?
  • codecovとかのよく使いそうなSaaSの記述はどうしようかな、と思ったけど一旦入れてない
  • READMEファイル置いてあるけど、このレポジトリの説明どこに置けばいいんだろ?
    • READMEとREADME-exampleみたいなのを分ける必要がありそうだな、紛らわしいし
  • バッヂ類は充実させたいな!
  • composerのcreate-projectも対応させてみよ。やったことないし

他の人の考えたやつも見てみてぇ〜な〜〜

*1:後になって気づいたけどやった事あった・・w https://github.com/Connehito/cake-sentry/pull/35/files