Swoole v4.7.0 版本正式发布,Swoole 官网支持直接运行 Swoole 代码
在 Swoole
官网增加了 在线运行 的按钮,可以直接运行首页提供的一些示例代码,当然也可以手动输出一些 PHP
代码进行测试。
可以访问 Swoole 官网首页进行测试使用:https://www.swoole.com/
目前还处于测试阶段,有遇到 BUG
可以向识沃科技客服反馈或交流群中反馈。
版本说明
在未正式发布时,对于一些新特性和功能发布过文章进行说明,所以重复的在此就不再赘述,可以查看:
- Swoole v4.7 版本新特性预览之 Process\Pool::detach()
- Swoole v4.7 版本新特性预览之 onDisconnect 事件回调
- Swoole v4.7 版本新特性预览之 Co::cancel()
- Swoole v4.7 版本预览之支持 c-ares
- Swoole v4.7 版本新特性预览之支持为每个端口设置不同的心跳检测时间
- 禁止 Hook 已经被 PHP 禁用的函数
disable_functions
将方法进行了禁用,在 HOOK
之后依旧能正常调用。如下代码:
var_dump(`ls`);
Swoole\Coroutine\run(function () {
var_dump(`ls`);
});
保存到
test.php
中,命令行使用php -d disable_functions=shell_exec test.php
执行之前的版本输出为:
PHP Warning:shell_exec() has been disabled for security reasons in /Users/lufei/Swoole/test.php on line 3
NULL
string(11) "swoole.php
"
而升级
v4.7.0
之后,行为和 HOOK 前一致。PHP Warning:shell_exec() has been disabled for security reasons in /Users/lufei/Swoole/test.php on line 3
NULL
PHP Warning:shell_exec() has been disabled for security reasons in /Users/lufei/Swoole/test.php on line 6
NULL
Coroutine\go()
方法增加了返回值
Coroutine\go()
方法不会返回协程 ID,从v4.7.0
中开始增加了返回值,返回当前协程 ID。use Swoole\Coroutine\System;
use function Swoole\Coroutine\run;
use function Swoole\Coroutine\go;
run(function () {
$cid = go(function() {
System::sleep(0.001);
});
var_dump($cid);
});
- 增加了
Cygwin
环境下的构建
v4.7.0
版本开始,可以从 GitHub release 中获取到该版本的 Cygwin
版本压缩包进行使用。更新日志 下面是完整的更新日志:
新增 API
- 新增
Process\Pool::detach()
方法 (#4221) (@matyhtf) Server
支持onDisconnect
回调函数 (#4230) (@matyhtf)- 新增
Coroutine::cancel()
和Coroutine::isCanceled()
方法 (#4247) (#4249) (@matyhtf) Http\Client
支持http_compression
和body_decompression
选项 (#4299) (@matyhtf)
- 支持协程 MySQL 客户端在
prepare
时字段严格类型 (#4238) (@Yurunsoft) - DNS 支持
c-ares
库 (#4275) (@matyhtf) Server
支持在多端口监听时给不同的端口配置心跳检测时间 (#4290) (@matyhtf)Server
的dispatch_mode
支持SWOOLE_DISPATCH_CO_CONN_LB
和SWOOLE_DISPATCH_CO_REQ_LB
模式 (#4318) (@matyhtf)ConnectionPool::get()
支持timeout
参数 (swoole/library#108) (@leocavalcante)- Hook Curl 支持
CURLOPT_PRIVATE
选项 (swoole/library#112) (@sy-records) - 优化
PDOStatementProxy::setFetchMode()
方法的函数声明 (swoole/library#109) (@yespire)
- 修复使用线程上下文的时候,创建大量协程时抛出无法创建线程的异常 (8ce5041) (@matyhtf)
- 修复安装 Swoole 时 php_swoole.h 头文件丢失的问题 (#4239) (@sy-records)
- 修复 EVENT_HANDSHAKE 不向下兼容的问题 (#4248) (@sy-records)
- 修复 SW_LOCK_CHECK_RETURN 宏可能会调用两次函数的问题 (#4302) (@zmyWL)
- 修复
Atomic\Long
在 M1 芯片下的问题 (e6fae2e) (@matyhtf) - 修复
Coroutine\go()
丢失返回值的问题 (swoole/library@1ed49db) (@matyhtf) - 修复
StringObject
返回值类型问题 (swoole/library#111) (swoole/library#113) (@leocavalcante) (@sy-records)
- 禁止 Hook 已经被 PHP 禁用的函数 (#4283) (@twose)
- 新增
Cygwin
环境下的构建 (#4222) (@sy-records) - 新增
alpine 3.13
和3.14
的编译测试 (#4309) (@limingxinleo)
![Swoole v4.7.0 版本正式发布,Swoole 官网支持直接运行 Swoole 代码](https://img.it610.com/image/info9/ba8a56d160114a139cb3331a8967e383.jpg)
文章图片
推荐阅读
- 【Hadoop踩雷】Mac下安装Hadoop3以及Java版本问题
- C语言的版本比较
- [源码解析]|[源码解析] NVIDIA HugeCTR,GPU版本参数服务器---(3)
- K8S|K8S 生态周报| Istio 即将发布重大安全更新,多个版本受影响
- Caffe在Windows10下CPU版本的安装(cpu+anaconda3+vs2013+pycaffe)
- 中单直通王者(三)(英雄池要跟上版本,选将放机灵点,听到没!)
- Centos6源码编译安装2.4版本http服务步骤
- C语言静态动态两版本通讯录实战源码
- 命令行上传小程序版本至微信后台
- swoole打造高性能赛事直播平台1(准备工作)