tebe/http-factory
最新稳定版本:v3.0.0
Composer 安装命令:
composer require tebe/http-factory
包简介
HTTP Factory provides automatic detection for Composer packages implementing the PSR-17 standard
README 文档
README
HTTP-Factory is a PHP package that implements PSR-17 HTTP factories interface. It acts as a simple facade to provide easy access to concrete HTTP factory packets. As its main feature it offers support for auto-discovery of the supported factories.
All PSR-17 interfaces are implemented:
- Psr\Http\Message\ResponseFactoryInterface
- Psr\Http\Message\ServerRequestFactoryInterface
- Psr\Http\Message\StreamFactoryInterface
- Psr\Http\Message\UploadedFileFactoryInterface
- Psr\Http\Message\UriFactoryInterface
Additionally, it implements a createServerRequestFromGlobals method, which is not part of PSR-17.
Auto-discovering PSR-7 packages
The package features auto-discovery support for the following PSR-7 packages:
- laminas/laminas-diactoros
- guzzlehttp/psr7
- slim/slim
- nyholm/psr7
The auto-discovery mechanism assumes that you are using one (and only one) of the above PSR-7 packages in your project. The first detected PSR-17 package will then be used for all interface factory methods.
Installation
When starting a new project one of the following PSR-7 packages must be installed.
$ composer require laminas/laminas-diactoros $ composer require guzzlehttp/psr7 $ composer require slim/slim $ composer require nyholm/psr7
When using the "nyholm/psr7" package you have to require the "nyholm/psr7-server" package, too.
$ composer require nyholm/psr7-server
Then install the HTTP-Factory package.
$ composer require tebe/http-factory
You can now use HTTP-Factory in the codebase of your project like so:
use Tebe\HttpFactory\HttpFactory; $factory = new HttpFactory(); # creates a ResponseInterface $factory->createResponse(int $code = 200, string $reasonPhrase = ''); # creates a ServerRequestInterface $factory->createServerRequest(string $method, $uri, array $serverParams = []); # creates a ServerRequestInterface $factory->createServerRequestFromGlobals(); # creates a StreamInterface $factory->createStream(string $content = ''); # creates a StreamInterface $factory->createStreamFromFile(string $filename, string $mode = 'r'); # creates a StreamInterface $factory->createStreamFromResource($resource); # creates an UriInterface $factory->createUri(string $uri = ''); # creates an UploadedFileInterface $factory->createUploadedFile( StreamInterface $stream, int $size = null, int $error = \UPLOAD_ERR_OK, string $clientFilename = null, string $clientMediaType = null );
Usage
Using constructor
use Tebe\HttpFactory\HttpFactory; $factory = new HttpFactory(); $response = $factory->createResponse(200); echo $response->getStatusCode();
Using static instance method
use Tebe\HttpFactory\HttpFactory; $response = HttpFactory::instance()->createResponse(200); echo $response->getStatusCode();
Using own strategies
use Tebe\HttpFactory\HttpFactory; HttpFactory::setStrategies([ DiactorosFactory::class, GuzzleFactory::class, SlimFactory::class ]); $response = HttpFactory::instance()->createResponse(200); echo $response->getStatusCode();
Using own factory
use Tebe\HttpFactory\HttpFactory; use Tebe\HttpFactory\FactoryInterface; class MyFactory implements FactoryInterface { // implement interface methods } $factory = new HttpFactory(); $factory->setFactory(new MyFactory()); $response = $factory->createResponse(200); echo $response->getStatusCode();
Tests
Run PHPUnit:
$ composer phpunit
Run PHP_CodeSniffer:
$ composer phpcs
Run PHP Code Beautifier and Fixer:
$ composer phpcbf
Run PHPUnit and PHP_CodeSniffer together:
$ composer test
Suggestions
Any suggestions? Open an issue.
统计信息
- 总下载量: 4.05k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 4
- 点击次数: 1
- 依赖项目数: 1
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2018-08-18