一些尼阿托科 / 简单-HTTP客户端
PSR-7、PSR-17和PSR-18的简单门面
v0.1.0
2019-09-03 11:50 UTC
Requires
- php: ^7.1
- psr/http-client: ^1.0
- psr/http-factory: ^1.0
- psr/http-message: ^1.0
Requires (Dev)
- phpunit/phpunit: ^8.3
This package is auto-updated.
Last update: 2024-09-29 05:09:05 UTC
README
编写与实现无关的代码是一种良好的实践,尤其是在可插拔库中——它们不应需要使用某些具体的HTTP客户端,例如。这就是为什么诞生了PSR-18——一个标准的HTTP客户端接口。
然而,直接在项目中使用PSR-18 HTTP客户端接口(以及随后PSR-7请求和PSR-17请求工厂)可能会很繁琐,尤其是如果你不需要它提供的那么多的灵活性。
这个小库解决了这个难题:它包含一个类,SimpleHttpClient,它本身不实现PSR-18。然而,它可以接受任何PSR-18客户端和PSR-17工厂,并返回PSR-7响应。这样,你不需要手动创建PSR-7请求,同时你仍然可以选择任何PSR-18 HTTP客户端。
使用方法
composer require someniatko/simple-http-client
<?php use Psr\Http\Client\ClientInterface; use Psr\Http\Message\RequestFactoryInterface; use Psr\Http\Message\StreamFactoryInterface; use Someniatko\SimpleHttpClient\SimpleHttpClientInterface; use Someniatko\SimpleHttpClient\SimpleHttpClient; function doSomething(SimpleHttpClientInterface $httpClient): void { $httpClient->sendRequest( 'POST', // HTTP method 'http://example.com/api/user', // URI [ 'Authorization' => 'basic dXNlcjpwYXNzd29yZA==' ], // headers '{"name":"foo","permissions":"rwx"}' // body ); } /** @var ClientInterface $psr18Client */ /** @var RequestFactoryInterface $psr17RequestFactory */ /** @var StreamFactoryInterface $psr17StreamFactory */ $client = new SimpleHttpClient( $psr18Client, $psr17RequestFactory, $psr17StreamFactory ); doSomething($client);
测试
在项目根目录下运行
./vendor/bin/phpunit
。