编程学习网 > PHP技术 > swoole > Swoole v4.7.0 版本正式发布,swoole官网支持直接运行swoole代码
2021
07-22

Swoole v4.7.0 版本正式发布,swoole官网支持直接运行swoole代码

swoole 官网增加了 在线运行 的按钮,可以直接运行首页提供的一些示例代码,当然也可以手动输出一些 PHP 代码进行测试。

版本说明

在未正式发布时,对于一些新特性和功能发布过文章进行说明,

禁止 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代码”的详细内容,想要了解更多swoole教程欢迎关注编程学习网

扫码二维码 获取免费视频学习资料

Python编程学习

查 看2022高级编程视频教程免费获取