jetimob / http-php-laravel
Guzzle 封装器,用于抽象必须通过 OAuth2.0 授权的请求
v2.2.1
2023-02-17 13:55 UTC
Requires
- php: ^8.1
- ext-json: *
- guzzlehttp/guzzle: ^7.4
- illuminate/console: ^9 || ^10
- illuminate/container: ^9 || ^10
- illuminate/support: ^9 || ^10
Requires (Dev)
- orchestra/testbench: ^7.6
- phpunit/phpunit: ^9.5
README
这个库作为 Guzzle 的封装,简化了需要授权(如 OAuth 2.0)的请求交换,并自动将 HTTP 响应反序列化为表示这些响应的对象实例。
有关自动反序列化响应到类的更多信息,请查看方法 complexResponseWithArrayTyping。
所有 HTTP 请求部分都委托给 Guzzle 处理,因此大多数配置都可以从 官方文档 中获取。
OAuth 2.0
流程
客户端凭证
授权代码
配置
序列化
重要!
如果使用 OPcache,则需要启用 opcache.save_comments 选项,即: opcache.save_comments=1。
这是为了使响应向量能够自动通过 PHP docblock 进行反序列化。例如,考虑以下代码
/** * @var \Jetimob\Http\Response[] $response_array */ protected array $response_array = [];
如果这个声明在一个扩展了 \Jetimob\Http\Response 的类内部,并且 HTTP 响应包含一个名为 response 的属性,其类型为 array,它将自动反序列化为在 docblock 中声明的类型(在这种情况下为 \Jetimob\Http\Response)的向量。
为了正确工作,定义的变量类型必须使用 trait Jetimob\Http\Traits\Serializable.
在 docblock 中定义变量类型的 必须 是其完整形式,即 \Jetimob\Http\Response,而不是 Response,并使用命名空间导入 use Jetimob\Http\Response;。