株式会社 弁護士ドットコム / 弁護士ドットコム事業部 エンジニア
PHP Conference 2020登壇
半年くらい前に静的解析をはじめました。 徐々に対象ファイルを増やし、現在では2000超のファイルをスキャンしています。 level0(不明なclass、関数の参照などの基本的なチェック)から段階的に厳しくして、level2(未知の全ての関数のチェック、PHPDocの検証)に上がります。 レガシープロジェクトにありがちな名前空間がない、PHPDocがないといった問題を、nikic/PHP-Parserを武器に乗り越えてきました。 PHPDocで補いきれない部分は、自作のYii1フレームワーク用のPHPStan拡張で解析しています。 レガシープロジェクトで、静的解析を進めてきた方法を紹介します。