phpでprotectedなメソッドにアクセスする。
この様なときに使う必要があった、laravelが持ってる protected な プロパティに強引にアクセスする。
laravelなどのフレームワークが内部に持ってるコールバックやプロパティを取り出して調べたり、意図通り、正しく内部登録されれてるかテストしたい。
しかし、内部へのアクセスは基本的に出来ない。
コールバック内部では、php の this を固定できるという事案を使ってハックする。
<?php (fn()=> $this->protected )->call($ev);
たとえば、こんな感じ。
<?php $eventObjects = ... $ev = $eventObjects[0]; $prop = (function(){return $this->callback;})->call($ev); $deep_prop = (function(){return $this->entry;})->call($prop);
php/laravel がContractでFacadeから呼び出している実体クラスがあって、そいつが持ってる値を調べたいときに使う。