Guzzle 7发布!
流行的GuzzleHTTP客户端上周达到了版本7,令人振奋的消息是,大多数用户(更改日志中说95%的用户)将能够在不进行修改的情况下进行升级。此发行版侧重于提高最低支持的PHP版本并引入PHP7中提供的新语言功能。
7.0版本的主要功能包括:
实施PSR-18
不再支持PHP5-最低的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文档,否则可能需要同时使用Guzzle6和Guzzle7,请查看项目自述文件中的版本指导表。在撰写本文时,最新文档的标题为“Guzzle6”,但docs.guzzlephp.org/en/latest/是最新的Guzzle7文档。
发行说明
如果您对导致v7.0.0的源代码更改感兴趣,可以将Guzzle6.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
已变更
使用错误级别记录中间件#2629中的错误
默认情况下禁用IDN支持,并要求ext-intl使用它#2675
7.0.0-beta2–2020-05-25
添加
Utils 在GuzzleHttp名称空间中使用 类而不是函数 。#2546
ClientInterface::MAJOR_VERSION #2583
已变更
getenv #2531不安全时避免使用该 功能
添加了真实的客户端方法#2529
避免由于全局安装冲突而导致的功能#2546
使用SymfonyIntl-IDNPolyfill#2550
添加方法HTTP动词,如 , , 等#2529Client::get()Client::head()Client::patch()
ConnectException 延伸 TransferException #2541
将默认的用户代理更新为“GuzzleHttp/7”#2654
固定的
各种国际ICU问题#2626
已移除
Pooloptionpool_size #2528
7.0.0-beta1–2019-12-30
添加
实施PSR-18并删除了PHP5支持#2421#2474
PHP7类型#2442#2449#2466#2497#2499
IDN支持重定向2424
已变更
不允许将null作为第三个参数传递给 #2427BadResponseException::__construct()
使用SAPI常量而不是方法调用#2450
使用本机函数调用#2444
使用旧ICUlib2454的PHP安装的更好默认设置
为所有常量添加了可见性#2462
不允许将null URI传递 给 和 #2461Client::request()Client::requestAsync()
将异常参数扩展为throwable#2495
固定的
当Promise拒绝使用字符串#2311时记录
已移除
类 SeekException #2162
RequestException::getResponseBodySummary() #2425
CookieJar::getCookieValue() #2433
uri_template() 和 UriTemplate #2440
请求选项 save_to 和 exceptions #2464