carstenwindler / http-helper
Installs: 3 766
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 0
Open Issues: 0
Requires
- php: >=7.2
- laminas/laminas-diactoros: ^2
- symfony/http-foundation: ^4 || ^5
Requires (Dev)
- mikey179/vfsstream: ^1.6.4
- mockery/mockery: ^1
- phpunit/phpunit: ^8
- symplify/easy-coding-standard: ^7.2
README
A collection of helper functions for your everyday work with http requests and responses.
Supports
- PSR-7 (
Psr\Http\Message\RequestInterface
,Psr\Http\Message\ResponseInterface
) - Symfony HttpFoundation (
Symfony\Component\HttpFoundation\Request
,Symfony\Component\HttpFoundation\Response
)
The main idea of these functions was to provide quick access to the http information during development (e.g. via the debugger console), that's why the functions are not namespaced. It's not meant to be used in your actual code! Srsly, it's not.
Example
Here are some http-helper functions in action:
Installation
composer require-dev carstenwindler/http-helper
(I suggest to only add these functions as require-dev
).
The functions are registered using the composer autoload feature, so there is nothing more for you to do.
Helper functions
Request
Both Psr\Http\Message\RequestInterface
and Symfony\Component\HttpFoundation\Request
are supported by the following functions.
request_to_string()
Serializes the request object in plain HTTP format according to RFC 7230.
request_to_file()
Just like request_to_string(), but the request string will be stored in a file called request.http
in your DOCUMENT_ROOT.
This way you can e.g. easily execute the request using PhpStorms cool Editor-based Rest Client.
If the file already exists and is not empty, the request will be appended.
request_to_curl()
Returns the request object as cURL command, so it can be used e.g. on console or import it in Postman easily.
Response
Both Psr\Http\Message\ResponseInterface
and Symfony\Component\HttpFoundation\Response
are supported by the following functions.
response_to_string()
Serializes the response object in plain HTTP format according to RFC 7230.
response_to_file()
Just like response_to_string()
, but the response string will be stored in a file called response.http
in your DOCUMENT_ROOT.
File usage
The following example shows you how to store requests and responses in files easily.
But why would you do that? Here, PhpStorm comes into play. It now comes equipped with the cool Editor-based Rest Client (think of it like a very simple Postman without all the fancy gui).
http-helper uses the suffix .http
, which is recognised by PhpStorm, so you will immediately have the possibility to modify and rerun the request in that file. I quite like the idea, since you could add it to your code base, so your fellow devs would have immediate access.
Credits
The serialization of the PSR-7 requests and responses are done using Laminas Diactoros. Weird name, great library!
For Symfony, the build-in serializers are used. Nice.
Todo
- make storage path of
*_to_file()
configurable