なるほど!Visitorパターン 〜Rectorをお供に〜 by きんじょうひでき

PHPerKaigi 2026
レギュラートーク(20分)

なるほど!Visitorパターン 〜Rectorをお供に〜

o0h_ きんじょうひでき o0h_

Rector、いい感じで強力なPHPのリファクタリングツールです。
「好きなルールで、めちゃくちゃコードを書き換えられる!!」という経験は、味わうと夢のような心地がします。

素晴らしいのは、「単なる置換では出来ない」もしくは「人知を超えた正規表現でも難しそう」な一括自動修正を、
十分に人間が理解可能なルール記述で サクサクと実現してくれることでしょう。

なぜ、そんな事が可能なのでしょうか?その裏にあるのは、テクノロジーです。
コードを「木構造(AST)」として解釈して、様々な「ルール」を適用していくことで、
置換対象の検出と置換の実行を進めます。

そこで役立つのが Visitorパターン です。
「木」という複雑な繋がりを渡り歩き、1つ1つの「地点」で外から与えられたロジックを適用していきます。
こうした作りが、「適用対象の構造自体や、渡り歩き方の実装には全く手を加えず、ただルールを付け外しできる」という拡張性をもたらします。

このトークでは、
「Rectorって凄いな、面白いな!」というワクワクと、
「ドンピシャでデザインパターンがハマると、こんなに気持ち良いのだな!」というドキドキをお届けします。

話すこと

  • ごくごく簡単に「ASTってなんだ」
  • Rectorの使い方、できること
  • Visitorパターンの概要
  • 上記を踏まえた「なぜRectorでVisitorパターンなのか」

想定対象

  • Rectorってなんだろう?を知りたい人
  • 「Visitorパターンが嬉しい場面」を見届けてみたい人