\GuzzleHttp\ Клиентское разрешение зависает, если контекстная привязка выполняется с помощью make() или makeWith()
Я пишу простую API-оболочку, и этой оболочке нужен настроенный экземпляр GuzzleHttp\Client в качестве зависимости.
use GuzzleHttp\Client;
class Api {
private $client;
public function __construct(Client $client)
{
$this->client = $client;
}
}
Все отлично работает, если я создаю Client
экземпляр с использованием new Client()
в AppServiceProvider->register()
:
$this->app->when(Api::class)
->needs(Client::class)
->give(function () {
return new Client(['base_uri' => config('services.api.base_uri')]);
});
Но Api
разрешение экземпляра зависает, если я создаю Client
экземпляр с использованием make()
или makeWith()
:
$this->app->when(Api::class)
->needs(Client::class)
->give(function () {
return $this->app->makeWith(Client::class, ['config' => ['base_uri' => config('services.api.base_uri')]]);
});
Я провел быстрое тестирование через tinker:
app(\App\Api::class);
и он просто висит вечно.