Laravel \如果使用make()或makeWith()完成上下文绑定,则GuzzleHttp\客户端解析挂起
我正在编写一个简单的API包装器,该包装器需要配置的GuzzleHttp\Client实例作为依赖项Laravel \如果使用make()或makeWith()完成上下文绑定,则GuzzleHttp\客户端解析挂起,laravel,guzzle,contextual-binding,Laravel,Guzzle,Contextual Binding,我正在编写一个简单的API包装器,该包装器需要配置的GuzzleHttp\Client实例作为依赖项 使用GuzzleHttp\Client; 类Api{ 私人客户; 公共函数构造(客户端$Client) { $this->client=$client; } } 如果我在AppServiceProvider->register()中使用new Client()创建Client实例,一切都会正常工作: $this->app->when(Api::class) ->需求(客户端::类) ->给予(
使用GuzzleHttp\Client;
类Api{
私人客户;
公共函数构造(客户端$Client)
{
$this->client=$client;
}
}
如果我在AppServiceProvider->register()
中使用new Client()
创建Client
实例,一切都会正常工作:
$this->app->when(Api::class)
->需求(客户端::类)
->给予(功能){
返回新客户端(['base_uri'=>config('services.api.base_uri'));
});
但是如果我使用make()
或makeWith()创建Client
实例,则Api
实例解析将挂起:
$this->app->when(Api::class)
->需求(客户端::类)
->给予(功能){
返回$this->app->makeWith(Client::class,['config'=>['base\u uri'=>config('services.api.base\u uri'))];
});
我通过tinker进行了快速测试:
app(\app\Api::class);
它永远挂着