クラスについて詳しく知りたい
クラス自体をよく知りたい。
このクラスは一体どういう状態なのだろう。
どんな値を持っているのだろう。
テストをしてるときに、正規の方法では取得できないprivateのフィールド値等、今このクラスはどうなってるのかとか。
(めったにそこまでしなきゃいけないことないけど。その時にはクラス構成やテスト考え直すほうが良いけど)
Reflection
PHPには、デバッグとかに使えるリフレクションって機能があります。
公式ドキュメント
https://www.php.net/manual/ja/book.reflection.php
例えばどんなことができる?
定数の定数名とか変数を取得したり、
https://www.php.net/manual/ja/reflectionclass.getconstant.php
privateメソッドを使えるようにしたり、
https://www.php.net/manual/ja/reflectionmethod.setaccessible.php
通常じゃ出来ないことが出来ます。
通常じゃ出来ないことが出来るってことは?
諦めていたテストコードが書けたりとか、諦めてたコードが書けたりするかもしれない。
が、、、通常じゃ出来ないことをすると、様々な前提が壊れるので・・・まあ普通に考えて、普段は使わない方がいいよね/(^o^)\
頭の片隅に置いておくと良さそうな気がします。
もし、普通に現場で使うと良さそうなユースケースとかあったら、教えてくださると嬉しいです!