先日、色々と調べごとをした結果を踏まえて「よ〜し、いっちょ自分でコード書いて試してみっかな!ライブラリでも作るかい!!」って気分になりまして。
その際に↓みたいなツイートをしていたのです。この辺りの”標準”みたいなのあんま分かってないな〜って。
PHPの新規PJ作る時って何入れておけばいいですか?
— 今日も誰かのにちようび(おいしい鮭親子丼) (@o0h_) 2020年9月12日
一旦↓みたいにしてみた
```
"require-dev": {
"phpunit/phpunit": "^9.0",
"vimeo/psalm": "^3.0",
"phpstan/phpstan": "^0.12",
"squizlabs/php_codesniffer": "^3.0"
}
```
いちいち「何が必要かな・・?」って考えるの結構ストレスになりそう。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も入れてある
- ✅ GitHub Actionsでphpunit phpcs psalmを叩くようにしてある
- ✅ ↑を実行した時にreviewdogでコメント飛ばすようにしてある
作ってて思ったこととか
- とりあえず「最低限」ってレベルならコレでいけそ、って感じにはなった
- 色々と触りながら育てていく前提
- lint周りとか色々と気になる部分出てきそう
- GitHub Actions自分で触ったこと無いんだよな〜〜*1やりたいな〜って気持ちもあったので、少し欲求が満たされた。良かった
- CIの設定ファイルだけ入れておけばすぐに動くの便利だな、すげーやGitHub Actions
- 毎回Dockerイメージをbuildしてるからキャッシュとかした方が良いんかな?
- codecovとかのよく使いそうなSaaSの記述はどうしようかな、と思ったけど一旦入れてない
- READMEファイル置いてあるけど、このレポジトリの説明どこに置けばいいんだろ?
- READMEとREADME-exampleみたいなのを分ける必要がありそうだな、紛らわしいし
- バッヂ類は充実させたいな!
- https://poser.pugx.org/とかactionsのstatusとかか 💨
- composerのcreate-projectも対応させてみよ。やったことないし
他の人の考えたやつも見てみてぇ〜な〜〜
*1:後になって気づいたけどやった事あった・・w https://github.com/Connehito/cake-sentry/pull/35/files