質問: $second; } ``` →引数なしでインスタンス化すると、引数足りないよのエラー しかし下記の様にresolve()を使用するとインスタンス化できる(もしくはインスタンス化している訳ではない??) ``` $hoge= resolve(Hoge::class); ``` 疑問点 --- ・なぜresolveを使用するとconstructでの引数を指定しなくてもinstance化できるのか? Laravel documentを参考にしましたが、「指定されたクラスやインターフェイスの名前から、そのインスタンス自身を依存解決します」の説明でいまいち何がどうなっているのかが不明なのでこちらで質問させていただきました。 よろしくお願いいたします。
回答: resolveはDIコンテナから、キー名のインスタンスを取得するヘルパーです。 どちらかというと >なぜresolveを使用するとconstructでの引数を指定しなくてもinstance化できるのか? よりも >なぜconstructで引数を指定すると、resolveしなくてもinstance化できるのか? の方がしっくりくる気がします。 キーワードとしては、Laravelでの、DIコンテナ、コンストラクタインジェクション、メソッドインジェクションあたりを調べてみてください。