Use PSR-18 (and PSR-17) interfaces instead of PHP-HTTP #60
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
I updated the client so it requires a PSR-18 HTTP client instead of a PHP-HTTP client. As this is a breaking change, I took the liberty to also change the way our client is bound in the service provider. The client now discovers HTTP clients itself. A custom HTTP client must now be registered by customizing the container binding.
Motivation and context
PSR-18 has been released for a while and most PHP-HTTP implementations now also implement PSR-18. Both changes should also make the usage without Laravel easier.
I also implemented PSR-17 HTTP factories as the currently used factory in combination with the discovery is deprecated. Currently just a few libraries implement these interfaces, so I required nyholm/psr7 for now. Once most HTTP clients implement these interfaces (Guzzle for example is working on it), we can drop it as a dependency and leave it to the consumer to choose an implementation.
How has this been tested?
Tested with existing/updated unit tests.
Types of changes
What types of changes does your code introduce? Put an
x
in all the boxes that apply:Checklist:
Go over all the following points, and put an
x
in all the boxes that apply.