PHP Conference Japan 2022
採択
2022/09/25 16:00〜
Track3
Regular Session (25mins)
🔰はじめての登壇 Quality

Psalmで"完全に理解した"静的解析

inouehi

Psalm(サーム)はコードの問題を見つけてくれる静的解析ツール(PHPStan的なもの)です。

PHPでは、せっかく型を宣言しても実行してみるまでエラーに気づくことができません。
では、型を宣言することに意味はないのでしょうか?
そんなことはありません。
コードを実行しなくても静的解析がエラーを検出してくれるからです。

そんなPHPの開発に欠かせない静的解析ツールですが、どのような仕組みで動いているかご存知でしょうか?

先日Psalmにコントリビュートしたのですが、職場でEMになり手を動かす機会が減ったため、コードを書く機会を作りたいというのがそれを始めるモチベーションの一つでした。しかし、実際には仕様を理解するためにコードリーディングに多くの時間を使いました。せっかくなので、これからPsalmに触れてみたい人がコードを理解するのを助けるために私が費やした時間を捧げたいと思います。

誰向けのセッション?

  • 静的解析の仕組みに興味がある方
  • 静的解析のルールを作ってみたい方
  • PHPStanやPhanは知っているが、Psalmって何かね?という方

本セッションの目指すところ

  • 静的解析の一事例であるPsalmがどのようにコードを解析しているのか、その原理を少し理解して喜ぶ。
  • これからPsalmにコントリビュートしたい方や拡張を作りたい方のハードルを下げる。
  • PHPStanやPhanをメンテナンスする方がPsalmの仕組みを参考にできるかもしれません。