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)
目录
相关文章
|
Ubuntu Python 文字识别
OCRmypdf安装部署深入详解
OCRmyPDF使用最好的可用开源OCR引擎Tesseract执行OCR。 OCRmyPDF是一个Python 3包,将OCR图层处理结果添加到PDF。 OCRmyPDF是功能最丰富且经过彻底测试的OCR PDF转换工具。
3421 0
OCRmypdf安装部署深入详解
|
6月前
|
安全 Ubuntu iOS开发
Nessus Professional 10.11 Auto Installer for Windows - Nessus 自动化安装程序 (2025 年 12 月更新)
Nessus Professional 10.11 Auto Installer for Windows - Nessus 自动化安装程序 (2025 年 12 月更新)
346 11
|
编解码 人工智能 安全
快来试试这个开箱即用的万相2.1服务!!!
阿里云万相2.1系列提供高效灵活的视频生成解决方案,支持文生视频、图生视频等多模态任务。通过阿里云计算巢与ComfyUI推出的快速视频生成服务,用户可轻松制作微电影或短视频。针对长视频生成,提供了三种方法:使用高性能显卡、首尾帧拼接和补帧模型。此外,还内置工作流实现文生图和图生图功能,简单易用。部署说明及使用流程详细列出,方便开发者快速上手。访问计算巢了解更多有趣服务。
|
10月前
|
Ubuntu 搜索推荐 安全
Linux发行版大观:Ubuntu、Fedora与Debian的选择与定制
;而如果您重视稳定性、自定义能力和开源理念,Debian无疑是最佳伙伴。无论选择哪个发行版,都不妨尝试对其进行一定程度的定制,以打造最适合自己的操作系统环境。
|
缓存 Java 数据库连接
Spring框架中的事件机制:深入理解与实践
Spring框架是一个广泛使用的Java企业级应用框架,提供了依赖注入、面向切面编程(AOP)、事务管理、Web应用程序开发等一系列功能。在Spring框架中,事件机制是一种重要的通信方式,它允许不同组件之间进行松耦合的通信,提高了应用程序的可维护性和可扩展性。本文将深入探讨Spring框架中的事件机制,包括不同类型的事件、底层原理、应用实践以及优缺点。
494 8
|
SQL 数据采集 BI
Quick 引擎-抽取性能提升
本文介绍了一种通过并发抽取方案提升 Quick BI 数据抽取性能的方法,利用 DataX 进行二次开发,实现数据同步至高性能 OLAP 引擎。通过指定分区键或配置多条 SQL 实现任务拆分,显著减少了数据抽取时间,优化效果得到客户认可。
510 0
Quick 引擎-抽取性能提升
|
JavaScript 安全 前端开发
掌握Deno:新一代安全的JavaScript和TypeScript运行时
【10月更文挑战第15天】Deno是由Node.js创始人Ryan Dahl发起的新一代JavaScript和TypeScript运行时,旨在解决Node.js的设计问题,提供更安全、现代的开发体验。本文介绍Deno的核心特性、优势及使用方法,包括安全性、统一的运行时、现代Web标准和内置工具等,帮助开发者快速上手Deno,适用于Web开发、工具开发和教育等领域。
|
机器学习/深度学习 缓存 Shell
VSCode上的Git使用手记(持续更新ing...)
本笔记是我想要学习如何将本地文件发布到GitHub上时开始看廖雪峰的Git教程,然后打开了VSCode,发现VSCode上面集成的Git辅助使用功能真的很好用…… 基本上到了不用看教程都可以猜懂的地步。 为了整理、规范使用技巧,在经过了一番学习和试验之后,觉得以这样一篇使用手记的形式发布使用技巧相关的博文,以记录和沉淀经验,并帮助更多Git和VSCode初学者少踩坑。 本文参考的教程、文档等内容见本文末尾。
VSCode上的Git使用手记(持续更新ing...)
|
应用服务中间件 Linux 网络安全
使用Certbot申请/续签ssl证书
使用Certbot申请/续签ssl证书
2936 8
|
存储 监控 Ubuntu
完全交互式!易于使用的 Linux 性能监控工具
完全交互式!易于使用的 Linux 性能监控工具
244 0

热门文章

最新文章