採択 2020/12/12 11:15〜 Track2 Regular session (25 mins)

レガシープロジェクトで、メタプログラミングを使ったPHPStan静的解析レベル上げ PHP Conference Japan 2020

弁護士ドットコム株式会社 | 小宮山 太樹

【概要】
弁護士ドットコムでも、半年くらい前にPHPStan静的解析をはじめました。

徐々に対象ファイルを増やし、現在では2000超のファイルをスキャンしています。
level0(不明なclass、関数の参照などの基本的なチェック)から段階的に厳しくして、level2(未知の全ての関数のチェック、PHPDocの検証)に上がります。

レガシープロジェクトにありがちな名前空間がない、PHPDocがないといった問題を、nikic/PHP-Parser(https://github.com/nikic/PHP-Parser)を武器に乗り越えてきました。
PHPDocで補いきれない部分は、自作のYii1フレームワーク用のPHPStan拡張で解析しています。
レガシープロジェクトで、静的解析を進めてきた方法を話します。

Track ID: Track2-1-B
Discord Channel: #track2-1-b-bengo4