Guzzle 7 发布

Laravel

广受欢迎的 Guzzle HTTP 客户端上周升级到了版本7,令人振奋的是,大多数用户(更改日志中说95%的用户)将能够在不进行修改项目的情况下进行升级。此发行版主要是提高了最低支持的 PHP 版本并引入 PHP 7 中提供的新语言功能。

7.0版本的主要功能包括:

  • 实施 PSR-18
  • 放弃对 PHP 5 的支持,目前支持的最低版本是 PHP 7.2
  • 尽可能增加了函数和方法的类型提示和返回类型
  • IDN支持重定向 (有关详细信息,请参阅 #2424

请务必查看 6.0到7.0升级指南 以获取 6.x 中已知的向后升级造成不兼容的列表。

我发现需要注意的一个更新是具有强类型的客户端HTTP方法(即get,post等):

get,head,put,post,patch,delete,getAsync,headAsync,putAsync,postAsync,patchAsync 和 deleteAsync 方法现在已在 GuzzleHttp\Client 上作为真正的方法实现,具有强类型。 为了最大程度地向后兼容,目前最初的__call 实现仍然保持不变,但在正常操作下不会被调用。

如果您仍然需要访问v6文档,否则可能需要同时使用Guzzle 6和7,请查看版本指南中的自述文件。 在撰写本文时,最新文档的标题为Guzzle 6',但是docs.guzzlephp.org/en/latest/ 是最新的 Guzzle7 文档。

发行说明

如果您对 v7.0.0 的源码变化感兴趣, 你可以比较 Guzzle 6.5 和 7.0。 以下是项目 更新日志 的发行说明:

7.0.1 – 2020-06-27

  • 修复多重定义函数的致命错误 #2699

7.0.0 – 2020-06-27

从 7.0.0-rc1 开始没有更改。

7.0.0-rc1 – 2020-06-15

更改

  • 在中间件中使用 error 级别来记录错误 #2629
  • 默认情况下禁用 IDN 支持,并要求 ext-intl 使用IDN #2675

7.0.0-beta2 – 2020-05-25

添加

  • 使用 Utils 类代替 GuzzleHttp 命名空间中的函数。 #2546
  • ClientInterface::MAJOR_VERSION #2583

更改

  • 当不安全时避免使用 getenv 函数 #2531
  • 添加了真实的客户端方法 #2529
  • 避免函数由于全局安装而导致冲突 #2546
  • 使用 symfony intl-idn polyfill #2550
  • 为 HTTP 动词添加方法,例如 Client::get()Client::head()Client:: patch() 等 #2529
  • ConnectException 继承 TransferException #2541
  • 将默认用户代理更新为 “GuzzleHttp/7” #2654

已修复

  • 各种国际 icu 问题 #2626

已删除

  • Pool 选项 pool_size #2528

7.0.0-beta1 – 2019-12-30

新增

已变更

  • 不允许将 null 作为第三个参数传递给  BadResponseException::__construct() #2427
  • 使用 SAPI 常量来代替方法调用 #2450
  • 使用本机函数调用 #2444
  • 使用旧的 ICU lib 2454 为 PHP 安装提供更好的默认值
  • 增加了对所有常量的可见性 #2462
  • 不允许将 null 作为 URI 传递到 Client::request() 和 Client::requestAsync() #2461
  • 将异常参数扩展为 throwable #2495

已修复

  • 当 Promise 拒绝时使用字符串记录到日志 #2311

已删除

  • SeekException #2162
  • RequestException::getResponseBodySummary() #2425
  • CookieJar::getCookieValue() #2433
  • uri_template() 和 UriTemplate #2440
  • Request 选项 save_to 和 exceptions #2464
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://laravel-news.com/guzzle-7-releas...

译文地址:https://learnku.com/laravel/t/46706

本文为协同翻译文章,如您发现瑕疵请点击「改进」按钮提交优化建议
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 1

好像可以无痛升级

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!