はじめに
3/21 - 3/23 で開催されていた PHPerKaigi2025 の感想記事です!
今回の PHPerKaigi ですが、day1 はオフラインで参加、day2 はオンラインで参加してきました!
様々なトークを聞きましたが、その中の「PHPStan七転八倒」で「PHPStan型付けチュートリアル」の存在を知ったので、実際にチュートリアルしてみた感想です!
「PHPStan七転八倒」の内容は、PHPStan 本体へのPRなど OSS 活動に関してがメインでした。トークの中でポロッと話に出た「PHPStan型付けチュートリアル」が気になったので、今回実際に試してみました。
PHPStan型付けチュートリアル 入門編 のいいところ
- 公式ドキュメント よりも量が多くないので読みやすいところ
- それぞれの節ごとに実際に手を動かして理解を深められるところ
- 手を動かす際は
PHPStan Playground
を使用してブラウザで実行できるところ
PHPStan型付けチュートリアル 入門編 の詳細
- 詳細は 君の目で確かめてくれ!1
個人的に知れて嬉しかったこと
- PHPStan\dumpType() を使用すると、PHPstan が式をどの方に解決するかを確認できること
例えば、確認したい箇所を PHPStan\dumpType()
で指定して PHPStan を実行すると下記のように表示される。
------ --------------------------
Line agreement.php
------ --------------------------
49 Dumped type: string|null
------ --------------------------
これはめちゃくちゃ便利!
ただこれくらいの型ならタイプヒント簡単にできるので、配列で試したい、、、!
なので配列を dump してみる。
dumpType([
'setting' => $setting,
'serialCodes' => $serialCodes,
'urls' => $urls,
]);
------ ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Line repository.php
------ ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
53 Dumped type: array{setting: Model_Settings|null, serialCodes: array<Model_Serial_Codes>|null, urls: array<Model_Urls>|null}
------ ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
dump された型の部分はこのまま PHPDOC の @return
に書けるじゃないか、、、!
(array-shapes を必死に書いてた自分を思い出し涙 )
まとめ
PHPStan型付けチュートリアル はいいぞ!
このチュートリアルを読んだら「PHPStan のマニュアル読みたい!」と言う気持ちになったので、説明書をあまり読まないタイプの人にとてもおすすめです!
今後 PHPStan のこと知らない人に知ってもらいたい場合、このチュートリアルを共有していきたいと思いました!