将依赖项参数传递给 Laravel 中的 App::make() 或 App::makeWith()
2022-08-30 18:23:33
我有一个使用依赖项的类。我需要能够从控制器动态设置依赖项的参数:
$objDependency = new MyDependency();
$objDependency->setSomething($something);
$objDependency->setSomethingElse($somethingElse);
$objMyClass = new MyClass($objDependency);
如何通过 Laravel 中的服务容器实现此目的?这是我尝试过的,但这对我来说似乎是错误的。在我的 AppServiceProvider 中:
$this->app->bind('MyClass', function($app,$parameters){
$objDependency = new MyDependency();
$objDependency->setSomething($parameters['something']);
$objDependency->setSomethingElse($parameters['somethingElse']);
return new MyClass($objDependency);
}
然后在控制器中,我会像这样使用它:
$objMyClass = App:make('MyClass', [
'something' => $something,
'somethingElse' => $somethingElse
]);
这是正确的吗?有没有更好的方法可以做到这一点?
谢谢