gravityrd / php7-client
用于访问 Gravity R&D 的 PHP 客户端
dev-master
2018-07-05 10:07 UTC
Requires
- php: >=7.0.4
- php-http/client-common: ^1.7
- php-http/client-implementation: ^1.0
- php-http/discovery: ^1.4
- php-http/message: ^1.6
Requires (Dev)
- guzzlehttp/psr7: ^1.4
- php-http/mock-client: ^1.0
- phpunit/phpunit: ^6
- psy/psysh: @stable
This package is not auto-updated.
Last update: 2024-09-20 21:17:09 UTC
README
这是之前 GravityClient 的 PHP 7+ 版本。该项目遵循 PSR (1,2,4,7) 标准,因此客户端方法的返回值现在返回符合 PSR7 的响应。
安装和使用
- 使用 Composer 安装包(目前请参考 git 项目)
- 该库需要一个具体的 PSR7 MessageFactory 和一个 HTTPlug Client 实现,以实现客户端抽象。这些依赖项必须来自您的项目。HTTPlug 项目已经为最常见的 http 用例(curl、socket、Guzzle 等)提供了现成的客户端和适配器。更多信息请参阅 文档。
- 对于迫不及待的人来说,请查看基于 Curl 和 Guzzle 的“hello world”示例
从 1.X Gravityrd 客户端升级
- 您必须提供 PSR7 MessageFactory 和 HTTPlug Client 实现。您可以在 composer 项目中简单地要求这些,或者明确传递给客户端。
- 客户端实现: http://docs.php-http.org/en/latest/clients.html
- 消息工厂实现: http://docs.php-http.org/en/latest/httplug/users.html
- 或者您可以自己制作,查看 HTTPlug 文档以获取接口定义
- 异常处理
- GravityException 已不再使用。如果配置或初始化失败,客户端将抛出适当的子组件异常。
- 在发送请求时,将抛出 HTTPlug 异常,请参阅: 文档
- 目前我们仅支持同步客户端,它们将始终返回一个 PSR7 请求(确切类取决于您提供的 MessageFactory)。
- 但是,您仍然可以将异步标志传递给请求,它的行为将与 1.X 相同。
- 客户端配置
- Gravity Config 现在仅负责 Gravity 特定的设置,客户端特定的设置(如旧的:verifyPeer)现在必须在您使用的客户端中完成(在这种情况下,您必须注入客户端),请参见下面的示例
// The Message and Stream factories will be // dicovered in this case, and you only pass options. // For the options available see the Client's documentation $options = [ CURLOPT_CONNECTTIMEOUT => 10, CURLOPT_SSL_VERIFYPEER => false ]; $curlClient = new Http\Client\Curl\Client(null,null,$options);
已删除的配置选项包括- timeoutSeconds
- verifyPeer
- verbose
- 客户端配置现在是不可变的,您必须使用构造函数来设置它