HttpModifier Component

[ ] (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)

[ ] (mailto:team@thruster.io)

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.