Home
Download
Document
Forum
Video
Donate
Source Code
AI 助理
Sponsors
CRMEB
Apipost
腾讯云
微擎
禅道
51Talk
Products
Swoole AI 智能文档翻译器
Swoole-Compiler PHP 代码加密器
CRMEB 新零售社交电商系统
Login
Register
全部
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
发表新帖
Swoole v4.7.0 版本正式发布,Swoole 官网支持直接运行 Swoole 代码
在 `Swoole` 官网增加了 **在线运行** 的按钮,可以直接运行首页提供的一些示例代码,当然也可以手动输出一些 `PHP` 代码进行测试。 可以访问 Swoole 官网首页进行测试使用:[https://www.swoole.com/](https://www.swoole.com/) 目前还处于测试阶段,有遇到 `BUG` 可以向识沃科技客服反馈或交流群中反馈。 ## 版本说明 在未正式发布时,对于一些新特性和功能发布过文章进行说明,所以重复的在此就不再赘述,可以查看: - [Swoole v4.7 版本新特性预览之 Process\Pool::detach()](https://wenda.swoole.com/detail/107787) - [Swoole v4.7 版本新特性预览之 onDisconnect 事件回调](https://wenda.swoole.com/detail/107792) - [Swoole v4.7 版本新特性预览之 Co::cancel()](https://wenda.swoole.com/detail/107796) - [Swoole v4.7 版本预览之支持 c-ares](https://wenda.swoole.com/detail/107830) - [Swoole v4.7 版本新特性预览之支持为每个端口设置不同的心跳检测时间](https://wenda.swoole.com/detail/107837) 对于其他的一些修改进行说明: - 禁止 Hook 已经被 PHP 禁用的函数 在之前的版本中,如果使用`disable_functions`将方法进行了禁用,在 `HOOK` 之后依旧能正常调用。 如下代码: ```php var_dump(`ls`); Swoole\Coroutine\run(function () { var_dump(`ls`); }); ``` 保存到`test.php`中,命令行使用`php -d disable_functions=shell_exec test.php`执行 之前的版本输出为: ```bash 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 前一致。 ```bash 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。 ```php 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](https://github.com/swoole/swoole-src/releases/latest) 中获取到该版本的 `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)
发布于3年前 · 46 次浏览 · 来自
分享
鲁飞
在 `Swoole` 官网增加了 **在线运行** 的按钮,可以直接运行首页提供的一些示例代码,当然也可以手动输出一些 `PHP` 代码进行测试。 可以访问 Swoole 官网首页进行测试使用:[https://www.swoole.com/](https://www.swoole.com/) 目前还处于测试阶段,有遇到 `BUG` 可以向识沃科技客服反馈或交流群中反馈。 ## 版本说明 在未正式发布时,对于一些新特性和功能发布过文章进行说明,所以重复的在此就不再赘述,可以查看: - [Swoole v4.7 版本新特性预览之 Process\Pool::detach()](https://wenda.swoole.com/detail/107787) - [Swoole v4.7 版本新特性预览之 onDisconnect 事件回调](https://wenda.swoole.com/detail/107792) - [Swoole v4.7 版本新特性预览之 Co::cancel()](https://wenda.swoole.com/detail/107796) - [Swoole v4.7 版本预览之支持 c-ares](https://wenda.swoole.com/detail/107830) - [Swoole v4.7 版本新特性预览之支持为每个端口设置不同的心跳检测时间](https://wenda.swoole.com/detail/107837) 对于其他的一些修改进行说明: - 禁止 Hook 已经被 PHP 禁用的函数 在之前的版本中,如果使用`disable_functions`将方法进行了禁用,在 `HOOK` 之后依旧能正常调用。 如下代码: ```php var_dump(`ls`); Swoole\Coroutine\run(function () { var_dump(`ls`); }); ``` 保存到`test.php`中,命令行使用`php -d disable_functions=shell_exec test.php`执行 之前的版本输出为: ```bash 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 前一致。 ```bash 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。 ```php 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](https://github.com/swoole/swoole-src/releases/latest) 中获取到该版本的 `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)
赞
2
分享
收藏
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
评论
2021-09-19
K
KaiSer
没有Redis啊
赞
0
回复
微信公众号
热门内容
作者其它话题
- thinkphp5.1在使用think-swoole的时候报错unsupported option [host]
- WSL 下服务器响应数据过大无法接收
暂无回复的问答
- CodeGalaxy K3s 轻量集群节点之间如何实现负载均衡
- 关于openssl CURL WARNING swSSL_connect: SSL_connect(fd=69) failed. Error: error:141A318A:SSL routines:tls_process_ske_dhe:dh key too small[1|394]
- 多个模型如何进行事务异常回退?
- websocket开启wss报错
- 协程tcp服务器如何使用多进程?recv()方法接收信息,打印出来的pid一直是同一个。没用使用到多进程啊。