johnathan-smith / xttp
A guzzle wrapper with typehints and syntactic sugar.
1.0.3
2020-02-19 14:13 UTC
Requires
- php: ^7.2.5
- ext-json: *
- guzzlehttp/guzzle: ^6.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.16
- phpunit/phpunit: ^8.0|^9.0
This package is auto-updated.
Last update: 2024-05-04 17:32:06 UTC
README
A guzzle wrapper with typehints and syntactic sugar.
Regular use is simple:
<?php use JohnathanSmith\Xttp\Xttp; /** @var \JohnathanSmith\Xttp\XttpResponseWrapper $xttpResponse */ $xttpResponse = Xttp::post('https://johnathansmith.com', ['form_params' => ['foo' => 'bar'], 'headers' => ['Content-Type' => 'application/x-www-form-urlencoded']]); // You may also do get, put, patch, delete.
There is also a package for Laravel.
After making the request you will get an instance of XttpResponse
. This
has a lot of syntactic sugar, for example:
- Getting header/s
- Getting response status and info
- Returning JSON or body
- Getting URL
- Cookies
One of the ways that this package shines is that it is set up to be very friendly with Unit testing. You can also easily create a longer version from above with an large amount of granular detail. You can do this on XttpPending the object. With this we can:
- Add Cookies/Headers/Options
- Add or prepend Request/Response/Retry/Other middleware
- Guzzle History and/or Mock handlers
- Authorization
- Guzzle Client Construction
<?php use JohnathanSmith\Xttp\XttpPending; $response = XttpPending::new() ->setUrl(// url) ->setMethod(// method) ->withHeaders(['X-Foo' => 'Bar']) ->asJson() ->send();
Xttp was inspired by Adam Wathan's zttp. A special thanks to the maintainers of Guzzle.