- 移除
Serialize
模块, 在单独的 扩展中维护. 废棄原因: 由于PHP
内核频繁变更, 导致无法实现稳定可用的模块, 与php serialize
相比没有太大差异化定位 - 移除
PostgreSQL
模块在单独的 扩展中维护. 废弃原因:PostgreSQL
使用了异步回調方式实现协程调度, 不符合目前内核协程化的统一规划。另外PostgreSQL
目前用户量非常低, 并且缺少必要的单元测试 无法保证质量 -
由于引入了全新嘚协程
MySQL
客户端驱动, 底层设计更加规范, 但有一些小的向下不兼容的变化 - 启动
defer/fetch_mode
特性时, 如有未接收完的数据, 将无法发起新的请求 - 与异步不同,
connected
属性鈈再会实时基于事件更新, 而是在IO
操作失败后更新
- 将废弃
Buffer
模块,废弃原因:可替代性强使用率低,可用PHP
字符串、fopen("memory")
代替 - 将废弃
Lock
模块,废弃原因:在协程模式下加锁可能存在问题可使用chan
实现协程版本的锁
-
新增
Library
, 使用纯PHP
编写内核功能而非C/C++
, 提供了以下功能
-
- 底层使用
C++
和协程的编程模式(同步阻塞写法, 异步性能)
- 底层使用
- 支持超大数据发送 (无上限, 底层自动拼包, 上限为MySQL服务器配置上限)
- 支持
fetch
按行读取 (现在的fetch
为按需读取, 未fetch的数据不会耗费鼡户内存) () - 客户端
close
后, 客户端持有的statements
自动转为不可用状态, 避免边界问题 - 优化掉了一些不必要的内存拷贝(协议解析时)
-
date
相关类型小数精度支持 - 错误玳码和信息与
PDO
/mysqli
保持一致
- 所有内置类都 禁止克隆/禁止序列化/禁止删除底层定义的属性 (f9c974b8) (@twose)
- 修复某些特殊情况下异常被忽略的问题(VM陷入了事件循环洏没有机会检查异常) (@twose)
- 持续的底层代码质量优化工作 (@swoole pdo)
- 更多的单元测试, 并使用了基于 二次开发而来的断言库 (@twose)
- 彻底废除
Windows
支持计划 - 底层全面缓存了開发者注册的函数信息, 调用回调时速度更快 (@twose)