-
Notifications
You must be signed in to change notification settings - Fork 34
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support PSR HTTP client #9
Comments
Looks like this could be included in #8 right? |
It looks like in #8, the composer is still using Guzzle. I think it's inconvenient to maintain a PHP client without a mainstream HTTP client package. |
@yidas you can still include Guzzle of course, but without forcing other people to use it |
Hi @garak, As I know, PSR-18 is the definition of the client interface. |
I'd like to use this library without being forced to use Guzzle. |
Got it. |
Possible with #8 -> instead of the whole client (facade there) just call inner processings // ...
# today
$calls = new \yidas\googleMaps\Services(new \yidas\googleMaps\Clients\GuzzleClient(), new \yidas\googleMaps\Services\ServiceFactory(new \yidas\googleMaps\ApiAuth($optParams)));
# via PSR
$calls = new \yidas\googleMaps\Services(new \yidas\googleMaps\Clients\PsrClient($yourPsrClient), new \yidas\googleMaps\Services\ServiceFactory(new \yidas\googleMaps\ApiAuth($optParams)));
// ... |
Not a good idea: dependencies should be injected, not instantiated (again, to be SOLID) |
I think the main issue remaining is "require": {
...
"guzzlehttp/guzzle": "~6.5.6|^7.4.3"
}, There should be a solution to require the abstract only, not the concrete. If we have to major now anyways, with that PR being merged, maybe this is the chance to also clean up that dependency issue |
@garak : So you just call class Something
{
public function __construct(
protected \yidas\googleMaps\Services $service
) {}
} And set the rest of dependency tree somewhere else... Like in neon config parameters:
apiKey: YOUR_API_KEY
services:
- yidas\googleMaps\ApiAuth(%apiKey%)
- yidas\googleMaps\Services\ServiceFactory
- yidas\googleMaps\Clients\PsrClient
- yidas\googleMaps\Services I see no problem. |
@alex-kalanis I was talking about the relationship between |
To which I added context that clarifies it further :)
and move guzzle to require-dev for test harness (as default) |
I'm not sure to understand how it was clarified... the only relevant subject here is the constructor of the class receiving the HTTP client |
No, also the compose require part as outlined in my previous comment here :) Otherwise you gain nothing really. |
That can be relevant elsewhere, just not relevant here. |
It would be nice to not restrict HTTP client usage to Guzzle, and using a PSR HTTP client instead
The text was updated successfully, but these errors were encountered: