-
-
Notifications
You must be signed in to change notification settings - Fork 23
Description
We recently made some changes to https://github.com/beluga-php/docker-php/blob/master/src/DockerClientFactory.php based on beluga-php/docker-php-api#14
There's a few issues around the return types, and discovery classes need to be updated to psr17/18.
However the main issue is around sockets, specifically Guzzle only supports sockets via curl opts, for example guzzle/guzzle#1962. However because we're using PluginClient
there's no way to pass the options to guzzle.
In symfony/http-client it uses the bindto
option to bind to a unix socket using the same curl_opt (https://github.com/symfony/http-client-contracts/blob/main/HttpClientInterface.php).
Unfortunately this makes Unix socket communication implementation specific and not something which could be supported using PluginClient
.
Therefore we need to make a decision of whether to move back to php-http/socket-client or make our library slightly more opinionated and use a specific http client.
socket-client
is going to be abandoned shortly, however forcing a http client is also not ideal as it may conflict with an existing client, or the user may have a different preference.
Taking everything into account, I think switching back to socket-client
and either making a PR to fix the issues, or creating an issue with the maintainer there is probably the best way forward right now. However I'd definitely like to hear what others think?