採択 2022/04/11 17:10〜 Track A LT(5分)

レガシーなPHPで、無理やりsetAccessibleする方法 PHPerKaigi 2022

4
巻嶋 雄大

レガシーバージョンのPHPから、最新バージョンのPHPへ移行したい方へ

PHP5.3.2より前のバージョンのPHPだと、setAccesibleが使えません。
そのため、private, protectedなメソッド、プロパティをテストしたいときは、本体をpublicにするしかありませんでした。

「setAccesibleを使いたいからPHPのバージョンアップをしたい」でも「PHPのバージョンアップをするためにはsetAccesbleを使ってユニットテストを書かないと行けない」というジレンマにずっと苦しんでおりました。

しかし、今回runkitを使うことで、PHP5.3.2より前のバージョンのPHPでも、非公開なメソッドのテストをすることができるようになる方法を考案しました!

これを導入すれば、テストコードの実装がどんどん進みますよ!