障害
Twig 3.30でEC-CUBEが500 — 3.12の返り値型追加が原因
要点
- EC-CUBE 4.3の運用サイトでcomposer auditがtwig/twigのセキュリティアドバイザリを検出した
- 修正版への更新としてtwig/twigを3.8系から3.30系へ上げたところ、開発環境で全ページが500エラーになった
- 原因はTwig 3.12.0で追加された抽象メソッドへの返り値型追加であり、記事では6行の修正と検証を記録している
なぜ重要か
同じ3.x内のマイナーアップデートでも互換性が崩れうるため、Twigに依存するアプリケーションでは本番反映の前に全ページの動作確認が必要になる。
影響を受ける人
- EC-CUBE 4.3を運用する開発者
- twig/twigを3.8系から3.30系へ更新する開発者
取るべき対応
- Twigを更新する前に開発環境で全ページの表示を確認する
- 記事の修正内容を参照し、返り値型の不一致が自社コードに影響するかを検証する
- Twig 3.30
- Twig 3.12.0
- Twig 3.8系
- EC-CUBE 4.3
- #Twig
- #EC-CUBE
- #依存関係更新
- #互換性
- #500エラー
はじめに 運用中の EC-CUBE 4.3 サイトで composer audit を回したところ、twig/twig にセキュリティアドバイザリが出ていました。修正版に上げるだけ — のつもりで twig/twig を 3.8 系から 3.30 系へ更新して開発環境にデプロイしたら、全ページが 500 になりました。 同じ 3.x 内のマイナーアップデートで、なぜここまで派手に壊れるのか。原因は Twig 3.12.0 で入った「抽象メソッドへの返り値型追加」でした。本記事はその調査と 6 行の修正、検証までの記録です。 実際にハマった — 全ページ…