gpt4 book ai didi

php - 如何通过服务容器将参数传递给构造函数?

转载 作者:行者123 更新时间:2023-12-03 18:39:46 24 4
gpt4 key购买 nike

我有一个可以响应调用 3rd 方支付解决方案的类。

作为其中的一部分,有各种商家 ID/共享 secret 参数。
这些论文将取决于谁登录到应用程序。

我正在使用的类在构建类时在构造函数中获取此信息。有没有办法在服务提供者中传递这个,也许是这样的:

 $this->app->bind( 'App\BokaKanot\Interfaces\BillingInterface',function ($merchantId)
{
return new KlarnaBilling($merchantId);
} );

如果是这样,是否仍然可以通过构造函数来做到这一点,或者我是否需要手动使用 App:make .如果我必须使用 App::make ,我怎么能不把它隐藏在我的调用类中?

或者我应该重构我使用的类以便在构造函数中不需要它,并且可能有一个 init 方法?

最佳答案

您可以将参数传递给 App::make并将参数传递给构造函数,如下所示:

$this->app->bind( 'App\BokaKanot\Interfaces\BillingInterface',
function( $app, array $parameters)
{
//call the constructor passing the first element of $parameters
return new KlarnaBilling( $parameters[0] );
} );

//pass the parameter to App::Make
App::make( 'App\BokaKanot\Interfaces\BillingInterface', [ $merchantId ] );

关于php - 如何通过服务容器将参数传递给构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36177469/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com