costructorに引数が必要なクラスを、一つの呼び出し元で複数DIする方法がわからず、、、教えていただきたいです。
現在、ビジネスロジックを実装するServiceクラス内のコンストラクタは以下のようになっています。
php
1private $file_maker; 2 private $zip_maker; 3 4 public function __construct(HogeClass $hoge) 5 { 6 $this->hoge = $hoge; 7 $this->file_maker = app(FileMaker::class, [ 8 'attr1' => 10, 9 'attr2' => 'csv', 10 'data' => [] 11 ]); 12 $this->zip_maker = app(FileMaker::class, [ 13 'attr1' => 10, 14 'attr2' => 'zip', 15 'data' => [] 16 ]); 17 }
ここでコンストラクタに引数を必要としないHogeClassはタイプヒントで問題ないですが、
FileMakerについては、異なる引数を渡して複数インスタンス化したいのです。
一つインスタンス化する場合については、過去の質問で見れましたし、
https://teratail.com/questions/227795
呼び出し元クラスごとで異なるDIをする時にwhen
を使う方法はわかるのですが。。。
https://readouble.com/laravel/5.8/ja/container.html
ご存知の方がいらっしゃれば教えてもらえるとありがたいです。
あなたの回答
tips
プレビュー