これは、asumikam #phpcon_odawara Advent Calendar 2025の12日目の記事です🎄
スライド
感想

このセッションは私たちの開発体験を超支えている「定義ジャンプ」の歴史、そしてどのように作られているのか、というのを紹介する内容でした。 歴史については ctags、LSP、LSIF といった技術がどう課題を解決してきたのか、その内部の話が純粋に面白かったです。
「寛容なパーサ」が不完全な状態でも解析を続ける仕組みはどうなってるんだろう、というのは気になったので tolerant-php-parser/docs/HowItWorks.md を斜め読み(AI読み...w)しました。
「エラーとなってもASTの解析を止めない」などがミソっぽいです。
コンパイルするのが目的じゃないのである程度エラーがあっても無視する、あるいは推測してとりあえずASTを作り切ってるというのをみて、なるほどな〜と思いました。
あとは、モンキーパッチなどで定義ジャンプが効かないケースがあるという話についても、体験したことがある話だったので面白かったです。 どうしても定義が解決できないコードに出会うたびに、PHPDoc等で無理やり補完を効かせるような工夫をしてきました。しかし、結局は人間の「記憶」と「勘」に頼らざるを得ず、常に「他にも呼び出し箇所があるのではないか?」と疑心暗鬼になりながら開発していた記憶があります。 今回、その「なぜ飛べないのか」という中身の仕組み(パーサの限界など)を知ることで、当時の挙動の理由が理解できました。
それにしても、「AI時代の定義ジャンプはお金がかかる」という表現が面白く、真面目な技術論の中にたけてぃらしい独特のユーモアが混ざっていて非常に良かったです。
匿名プロポーザルで振られた絵文字が「カンガルー🦘」だったのは本当に偶然なのでたけてぃの2025年の運勢がよかったということも伺えて良いですね。 たけてぃ、登壇ありがとうございました🦘💨
ぷろも〜しょん
PHPカンファレンス小田原2026はスポンサーを募集しています!
竹が残り僅か、梅が余裕あり、といった状況です。 スポンサーお待ちしています🙏🙏🙏