thruster / http-modifier
Thruster HttpModifier Component (Modifies PSR-7 Request & Responses)
Requires
- php: >=7.0
- psr/http-message: ~1.0
Requires (Dev)
- phpunit/phpunit: ~5.0
This package is auto-updated.
Last update: 2024-11-14 02:57:53 UTC
README
[] (https://github.com/ThrusterIO/http-modifier/releases) [] (LICENSE) [] (https://travis-ci.org/ThrusterIO/http-modifier) [] (https://scrutinizer-ci.com/g/ThrusterIO/http-modifier) [] (https://scrutinizer-ci.com/g/ThrusterIO/http-modifier) [] (https://packagist.org/packages/thruster/http-modifier)
The Thruster HttpModifier Component. Provides a backbone for modifying PSR-7 Request/Response for HTTP Clients/Servers and other utilities which uses PSR-7 standard.
Collection of Thruster Http Modifiers
Install
Via Composer
$ composer require thruster/http-modifier
For PHP < 7.0
For older PHP version than PHP7 there is branch php5
$ composer require thruster/http-modifier ">=1.0,<2.0"
Usage
There are four type of modifiers:
- ServerRequestModifierInterface
- RequestModifierInterface
- ResponseModifierInterface
- MessageModifierInterface
Each of them has own Collection to group them and run modify
on each of modifier.
Standalone modifier
$modifier = new class implements ResponseModifierInterface { public function modify(ResponseInterface $response) : ResponseInterface { return $response->withHeader('X-Powered-By', 'Thruster/1.0'); } } $response = $modifier->modify($response);
Using collection
$collection = new ResponseModifierCollection(); $collection->add(new ServerTimeModifier()); $collection->add(new PoweredByModifier('Thruster/1.0')); $response = $collection->modify($response);
Nesting collections
$collectionA = new ResponseModifierCollection(); $collectionA->add(new ServerTimeModifier()); $collectionA->add(new PoweredByModifier('Thruster/1.0')); $collectionB = new ResponseModifierCollection(); $collectionB->add($collectionA); $response = $collectionB->modify($response);
Testing
$ composer test
Contributing
Please see CONTRIBUTING and CONDUCT for details.
License
Please see License File for more information.