キーワードは「延命」 ― リプレイス困難システムの現実的バージョンアップ戦略 by 李丞浩

PHPerKaigi 2026
採択
2026/03/21 17:05〜
Track C
レギュラートーク(20分)

キーワードは「延命」 ― リプレイス困難システムの現実的バージョンアップ戦略

李丞浩
6

「これ以上触らない」ことが決まっているレガシーシステムを、どう安全に未来につなげますか?

PHP5.6で動くレガシーシステム。詳しい人はもういない。新規開発の停止が決定してから3年が経過しているが、毎月しっかりと売上を生んでいる。そんなシステムのPHP8.3へのジャンプアップを、最小限の工数で安全に実現した戦略の解説です。

新規開発を停止している以上、「リファクタリングしてから」「テストを書いてから」と時間をかけることはできません。システムの詳細を理解している人がいない以上、少しでもリスクのある修正は取り入れられません。このような強い制約の下での現実的バージョンアップ戦略を共有します。理解度の低いシステムに対するPHPバージョンアップへの不安を解消し、具体的な対策を持ち帰っていただける内容です。

対象

  • なかなか手をつけられないレガシーなプロダクトを抱えている方
  • アプリケーションのPHPバージョンアップで苦戦している方
  • auroloadなど「PHPの仕組みの部分」を実践的に活用したい方

話すこと

新規開発はしない、現状維持できれば問題ないお金を稼いでる以上、いつまで使われ続けるかわからない
こう言った状況で力を入れすぎず、楽かつ安全にバージョンを上げる実践例を紹介します。

学べること

  • AIのバージョンアップ作業での活用
  • ワンコードでバージョンアップする戦略
  • テストを書かずに安全を確保する戦略
  • 段階的移行でリスクを最小化する戦略

内容

  • AIでバージョンアップの影響を調査させる工夫
  • 同じコードでPHP5.6と8.3の両方を動かす方法
  • ミラーリングサーバーとアクセスログリプレイで実トラフィック検証
  • エンドポイント単位の段階的移行(path-based routing)