多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# 1.8.6 [TOC] 1.8.6版本是一个重要的BUG修复版本,主要修复了PHP7环境下HttpServer、TCPClient、HttpClient、Redis等客户端存在的内存泄漏、崩溃问题。另外1.8.6版本对MySQL进行了彻底重构,提供了全新的面向对象风格API,彻底移除了对PHP的mysqli和mysqlnd的依赖。 **建议所有swoole开发者升级至此版本。** ## 主要更新内容 * 修复`Swoole\Server->set`方法在关联索引数组的Value为NULL时错误地更改了zval类型 * 更新`Swoole\Server->task`方法第三个参数可以直接传入回调函数 * 修复`Swoole\WebSocket\Server`收到恶意请求时崩溃的问题,提升稳定性 * 重构`Swoole\MySQL`客户端,移除对`mysqli`和`mysqlnd`的依赖,提供了面向对象风格的API * 调整`Swoole\Http\Client`为内置,不需要额外的编译参数开启 * 调整`Swoole\Client`和`Swoole\Http\Client`内存回收的时机,在连接发送关闭时回收内存资源 * 增加`swoole_async_dns_lookup`查询结果缓存 * 优化`Swoole\WebSocket\Server`性能,减少两次内存复制 * 移除`Swoole\Http\Server->setGlobal`方法 * 修复在Task进程中执行close时onClose回调函数未在Worker进程中执行的问题 * 修复`Swoole\Table`删除KEY后未清空数据的问题 * 增加SSL、TLS证书链的支持 * 移除`gcc aio` * 修复异步文件读写函数的相关问题 ## 新版异步MySQL客户端 ~~~ $db = new swoole_mysql; $server = array( 'host' => '192.168.56.102', 'user' => 'test', 'password' => 'test', 'database' => 'test', ); $db->connect($server, function ($db, $r) { if ($r === false) { var_dump($db->connect_errno, $db->connect_error); die; } $sql = 'show tables'; $db->query($sql, function(swoole_mysql $db, $r) { global $s; if ($r === false) { var_dump($db->error, $db->errno); } elseif ($r === true ) { var_dump($db->affected_rows, $db->insert_id); } var_dump($r); $db->close(); }); }); ~~~