v4.7.1 版本主要是一个 Bug 修复版本,没有向下不兼容改动。
SWOOLE_HOOK_CURL
支持了CURLOPT_RESOLVE
选项支持了形如HOST:PORT:ADDRESS
、[+]HOST:PORT:ADDRESS
、[-]HOST:PORT:ADDRESS
和多地址的格式
use Swoole\Coroutine;
use Swoole\Runtime;
Runtime::enableCoroutine(SWOOLE_HOOK_CURL);
Coroutine\run(function () {
$host = 'httpbin.org';
$url = 'https://httpbin.org/get';
$ip = Coroutine::gethostbyname($host);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_RESOLVE, ["{$host}:443:127.0.0.1", "{$host}:443:{$ip}"]);
$data = curl_exec($ch);
$httpPrimaryIp = curl_getinfo($ch, CURLINFO_PRIMARY_IP);
$body = json_decode($data, true);
assert($body['headers']['Host'] === 'httpbin.org');
assert($body['url'] === $url);
assert($ip === $httpPrimaryIp);
});
下面是完整的更新日志:
System::dnsLookup
支持查询 /etc/hosts
(#4341) (#4349) (@zmyWL) (@NathanFreeman)SWOOLE_HOOK_CURL
支持 CURLOPT_RESOLVE
选项 (swoole/library#107) (@sy-records)SWOOLE_HOOK_CURL
支持 CURLOPT_NOPROGRESS
选项 (swoole/library#117) (@sy-records)PDOStatement::bindParam()
期望参数 1 为字符串的问题 (swoole/library#116) (@sy-records)