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

简介: 在 Swoole 官网增加了 在线运行 的按钮,可以直接运行首页提供的一些示例代码,当然也可以手动输出一些 PHP 代码进行测试。可以访问 Swoole 官网首页进行测试使用:https://www.swoole.com/目前还处于测试阶段,有遇到 BUG 可以向识沃科技客服反馈或交流群中反馈。

版本说明


在未正式发布时,对于一些新特性和功能发布过文章进行说明,所以重复的在此就不再赘述,可以查看:

对于其他的一些修改进行说明:

  • 禁止 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_compressionbody_decompression 选项 (#4299) (@matyhtf)

增强

  • 支持协程 MySQL 客户端在 prepare 时字段严格类型 (#4238) (@Yurunsoft)
  • DNS 支持 c-ares 库 (#4275) (@matyhtf)
  • Server 支持在多端口监听时给不同的端口配置心跳检测时间 (#4290) (@matyhtf)
  • Serverdispatch_mode 支持 SWOOLE_DISPATCH_CO_CONN_LBSWOOLE_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.133.14 的编译测试 (#4309) (@limingxinleo)
目录
相关文章
|
Java API PHP
(转载)为什么不推荐使用swoole和hyperf官方框架
(转载)为什么不推荐使用swoole和hyperf官方框架
3175 0
|
安全 API 网络安全
Swoole v4.6.0 版本发布,支持原生 curl 协程客户端
Swoole v4.6.0 版本发布了,同样也是 2021 年的首个版本更新。 作为一个 y 版本发布,此次更新也包含了不兼容的修改以及许多的新功能
635 0
|
5月前
|
前端开发 小程序 JavaScript
swoole(一)laravel8配置使用swoole(3)
Laravel-swoole的优势就是将swoole插件集成至laravel-s插件中,当前laravel-s插件启动的时候,同时持久化的启动了swoole,不需要我们再服务器端再启动一次swoole。
44 0
|
5月前
|
前端开发 应用服务中间件 网络安全
swoole(一)laravel8配置使用swoole(2)
将上边我使用xxx代替的部分改成你自己的信息。 特别说明一下:我这里使用了ssl证书,如果您没有相关的配置,把https那部分换掉就好。 具体的配置含义,请参考官方文档:
57 0
|
5月前
|
Dart 前端开发 JavaScript
swoole(一)laravel8配置使用swoole(1)
然后在服务器使用命令行执行 复制代码
119 0
|
Linux PHP Docker
Windows下PHP微服务框架Hyperf Swoole开发部署(Docker方式)
Windows下PHP微服务框架Hyperf Swoole开发部署(Docker方式)
687 0
Windows下PHP微服务框架Hyperf Swoole开发部署(Docker方式)
|
PHP 开发工具
swoole-cli常见问题
由于系统的cacert证书有问题,可能会报该错误,在fpm环境的时候我们需要先下载好cacert.pem文件,并在php.ini中声明路径
378 0
|
Go 网络安全 API
Swoole v4.6.3 版本发布,祝大家 2021 春节快乐
v4.6.3 版本主要是一个 Bug 修复版本,没有向下不兼容改动。
84 0
|
网络协议 PHP
Swoole v4.5.1版本发布
v4.5.1,这是一个 BUG 修复版本, 补充了本应在v4.5.0引入的 System 文件函数废弃标记。
113 0
|
关系型数据库 MySQL 测试技术
Swoole v4.5.3版本发布
新增了APL,修复了一些错误
117 0