Modernizing Static Method Testing 〜 PHP の静的メソッドテストを現代化する〜 by LuckyWind

PHPカンファレンス関西2025
LT(5分)
初登壇

Modernizing Static Method Testing 〜 PHP の静的メソッドテストを現代化する〜

LuckyWind_sck LuckyWind LuckyWind_sck

多くのレガシーな PHP コードベースでは、インスタンスクラスを使わず、静的メソッドを関数のように扱うスタイルが一般的に採用されてきました。

しかしこの設計は、特にユニットテストの観点から見ると、静的メソッドのモックが難しいという課題があります。一般的なテストフレームワークでは静的メソッドのモックがサポートされておらず、そのため開発者は StaticMock のようなライブラリに頼る必要があります。

ただし StaticMock では、モック対象のメソッドが静的解析されないため、IDE のコードジャンプ機能が効かないといった不便さがあります。

そこで注目したいのが、PHP 8.1 から導入された「第一級 callable」構文です。これを使えば、静的メソッドをクロージャとして渡すことが可能になります。

本トークでは、この新しいアプローチとその実践的な活用方法について紹介します。