課題
Laravelでテストを書く時に、テストメソッドの中でインスタンスを作成したい時があります。
例えばコンストラクタインジェクションで複数インスタンスの依存注入を行っている場合に、ずっと注入するクラスのインスタンスを全て作成してから引数に渡していて、めっちゃめんどいなーと思っていました。
こんな感じです。。><
$repoA = new RepositoryA();
$instanceA = new InstanceA();
$instanceB = new InstanceB($repoA,$instanceA);
解決
サービスコンテナを使って依存解決すると一発
$instanceB = $this->app->make('InstanceB');
$app
にアクセス出来ない場所で使いたい場合は、resolve
ヘルパメソッドが使える
$instanceB = resolve('InstanceB');
もっと早く調べてればよかった><