\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);

и он просто висит вечно.

0 ответов

Другие вопросы по тегам