tuupola / http-factory

Lightweight autodiscovering PSR-17 HTTP factories
MIT License
17 stars 6 forks source link

Autodiscovering PSR-17 HTTP Factories

Latest Version Software License Build Status Coverage

Install

Install the library using Composer.

$ composer require tuupola/http-factory

Usage

Let's assume you have Diactoros installed.

$ composer require zendframework/zend-diactoros

The factories will now automatically return Diactoros PSR-7 instances.

use Tuupola\Http\Factory\RequestFactory;

$request = (new RequestFactory)->createRequest("GET", "https://example.com/");
print get_class($request); /* Zend\Diactoros\Request */

On the other hand if you have Slim frameworks installed.

$ composer remove zendframework/zend-diactoros
$ composer require slim/slim

The factories will now return Slim PSR-7 instances.

use Tuupola\Http\Factory\RequestFactory;

$request = (new RequestFactory)->createRequest("GET", "https://example.com/");
print get_class($request); /* Slim\Http\Request */

This library currently automatically detects and supports laminas/laminas-diactoros, zendframework/zend-diactoros, slim/slim, slim/psr7, nyholm/psr7 and guzzle/psr7 PSR-7 implementations.

Testing

You can run tests either manually or automatically on every code change. Automatic tests require entr to work.

$ make test
$ brew install entr
$ make watch

Contributing

Please see CONTRIBUTING for details.

Security

If you discover any security related issues, please email tuupola@appelsiini.net instead of using the issue tracker.

License

The MIT License (MIT). Please see License File for more information.