1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PHPStan型付けチュートリアル はいいぞ!

Posted at

はじめに

3/21 - 3/23 で開催されていた PHPerKaigi2025 の感想記事です!
今回の PHPerKaigi ですが、day1 はオフラインで参加、day2 はオンラインで参加してきました!

様々なトークを聞きましたが、その中の「PHPStan七転八倒」で「PHPStan型付けチュートリアル」の存在を知ったので、実際にチュートリアルしてみた感想です!

「PHPStan七転八倒」の内容は、PHPStan 本体へのPRなど OSS 活動に関してがメインでした。トークの中でポロッと話に出た「PHPStan型付けチュートリアル」が気になったので、今回実際に試してみました。

PHPStan型付けチュートリアル 入門編 のいいところ

  • 公式ドキュメント よりも量が多くないので読みやすいところ
  • それぞれの節ごとに実際に手を動かして理解を深められるところ
  • 手を動かす際は PHPStan Playground を使用してブラウザで実行できるところ

PHPStan型付けチュートリアル 入門編 の詳細

個人的に知れて嬉しかったこと

  • PHPStan\dumpType() を使用すると、PHPstan が式をどの方に解決するかを確認できること

例えば、確認したい箇所を PHPStan\dumpType() で指定して PHPStan を実行すると下記のように表示される。

dump結果
 ------ -------------------------- 
  Line   agreement.php             
 ------ -------------------------- 
  49     Dumped type: string|null  
 ------ -------------------------- 

これはめちゃくちゃ便利!
ただこれくらいの型ならタイプヒント簡単にできるので、配列で試したい、、、!

なので配列を dump してみる。

dumpType()
dumpType([
    'setting' => $setting,
    'serialCodes' => $serialCodes,
    'urls' => $urls,
]);
dump結果
 ------ --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 
  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 を必死に書いてた自分を思い出し涙 :cry:

まとめ

PHPStan型付けチュートリアル はいいぞ!

このチュートリアルを読んだら「PHPStan のマニュアル読みたい!」と言う気持ちになったので、説明書をあまり読まないタイプの人にとてもおすすめです!

今後 PHPStan のこと知らない人に知ってもらいたい場合、このチュートリアルを共有していきたいと思いました!

  1. 君の目で確かめてくれ!

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?