tflori/tal

一个用于添加发送响应和管理cookie等额外功能的guzzle/psr-7包装器

v2.0.0-RC.1 2024-03-07 14:31 UTC

This package is auto-updated.

Last update: 2024-09-07 16:16:00 UTC


README

Build Status Coverage Status Latest Stable Version Total Downloads License

这是一个包含发送响应和管理cookie等额外功能的guzzle/psr-7克隆。由于他们改变了属性访问级别为私有,我不得不复制代码而不是扩展它。

如果你认为guzzle的代码变化很大,这是过时的 - 欢迎提交pull request。

PSR-7 扩展

这个分支使用了一个扩展且完全兼容的PSR-7版本。这个扩展破坏了PSR-7元文档中的一些声明。

在PSR-7中,每条消息应该是不可变的。这意味着你不能在创建消息之后更改它。相反,你必须克隆它并修改克隆。

因此我们将请求和响应接口分成了两部分

  • Tal\Psr7Extended\ClientRequestInterface - 将从客户端发送到服务器的请求
  • Tal\Psr7Extended\ClientResponseInterface - 从服务器发送到客户端的响应
  • Tal\Psr7Extended\ServerRequestInterface - 从客户端发送到服务器的请求
  • Tal\Psr7Extended\ServerResponseInterface - 将从服务器发送到客户端的响应

它们与PSR-7接口完全兼容。这意味着仍然存在with*()方法,也可以用于更改客户端请求和服务器响应。但你要明白,这不仅仅是一个哲学问题:当你克隆消息并修改属性时,意味着对象必须在内存中复制。即使你不存储旧对象,它也必须被收集并从垃圾回收器中删除。