「効かない!」依存性注入(DI)を活用したAPI Platformのエラーハンドリング奮闘記 by まきまき

PHPerKaigi 2026
LT(5分)

「効かない!」依存性注入(DI)を活用したAPI Platformのエラーハンドリング奮闘記

_mkmk884 まきまき _mkmk884
3

フレームワーク同士の噛み合わせによって、カスタムしたい箇所がうまくカスタムできずモヤモヤしたことはありますでしょうか?

私は「例外時のAPI Platformからのレスポンスをカスタムしたいのに、Laravelの標準エラーハンドラに書いても効かない〜〜〜!」とAPI Platform for Laravelの例外処理に悩まされました。
これは、API Platformが内部で利用するSymfonyのコンポーネントが、Laravelの例外処理よりも手前でレスポンスを生成し、意図的に上書きしているためです。

そこでフレームワークのソースコードを確認して勝ち取った解決策を共有します。それは、複雑な設定変更ではなく、たった一つのサービスプロバイダへの追記によるものです。
ポイントはフレームワークのErrorHandlerクラスをカスタムクラスで上書きすることでした。

このLTでは、フレームワークの制御の意図的な優先問題を解決する実例とDI(依存性注入)がいかにフレームワークを裏側から制御する武器になるかをお話しします!