Workerman\Events\Revolt改名为Workerman\Events\Fiber,并且不会自动开启,需要手动开启 ($worker->eventLoop = Fiber::class)PHP>=8.0更多参考 升级到1.6
支持自定义应用插件 public 目录
优化Model DIE智能提示
增加超全局中间件
支持跨应用设置中间件
增加助手函数input()
支持 mongodb/laravel-mongodb
路由分组支持在任意位置设置中间件
$request->getRealIp() 增加合法性检查
view(string $template, array $vars = [], string $app = null, string $plugin = null) 支持plugin参数
windows下使用PHP_BINARY常量对应的php启动
支持workerman v5协程版本
增加support\Context类用于记录协程上下文
更多参考 https://github.com/walkor/webman-framework/releases
利用命令composer create-project workerman/webman 新建的webman项目 app.controller_reuse 配置将默认为
false,开发者仍然可以手动将其设置为true开启控制器复用。
此变动不影响老项目。
提示
很多开发者习惯了传统框架每个请求都重新初始化一个控制器的模式,所以官方默认将控制器复用关闭。
关闭控制器复用后helloworld压测性能损失约10%左右,但真实业务下性能损失可以忽略不计。
例子
<?php
namespace app\controller;
use app\model\User;
use support\Request;
class User
{
public function find(Request $request, User $user)
{
return $user->find(1);
}
}
感谢 377960738 的贡献
例如
public_path('css/main.css');
//相当于
public_path() . '/css/main.css';
感谢 377960738 的贡献
参见 https://github.com/walkor/webman-framework/pull/69
感谢 krissss 的贡献
-)格式例如 /user/login-check 等同于 /user/loginCheck 等同于 /user/logincheck
其它更多变更请参考 github
__construct()方法,无需再安装action-hook插件$request->plugin属性,用于标记当前请求属于哪个插件更多参考 webman1.4升级指南
$response->exception(); 获取业务异常$request->route->param(); 获取路由参数support/helpers.php$request->getRealIp() 方法server.stop_timeout 配置,用于控制停止webman的超时时间(需要workerman>=4.0.34),默认2秒。Workerman\Protocols\Http\Request::sessionId($sid) 支持sid函数RedisClusterSessionHandler RedisSessionHandler 支持 心跳和重连Workerman\Worker::$stopTimeout参数,用于控制停止workerman的超时时间webman/support 目录中大部分文件移动至 webman-framework/src/support 方便升级注意
升级前先做好备份
最近阿里云composer镜像停止了更新,所以使用阿里云镜像无法更新最新版本webman。
请执行命令composer config -g --unset repos.packagist暂时关闭阿里云代理,再升级webman
webman 1.2.x 升级方式
composer require workerman/webman-framework ^1.3.0 && composer require webman/console ^1.0.16 && ./webman install
webman 1.x 升级方式
重新创建项目 composer create-project workerman/webman,然后将原来项目中app目录、config目录覆盖到新项目。
event-loop设置event_loop默认为空,系统会自动选择最优的事件循环库。'event_loop' => Workerman\Events\Swoole::class,request_class设置request_class 默认使用 support\Request::classpublic_path runtime_path 目录设置,用于设置静态文件目录和rutime目录https://www.workerman.net/plugin/5
需要webman>=1.2.2 webman-framework>=1.2.1
增加phar打包功能,可将webman项目打包成一个phar文件,方便部署。
参见 phar打包
增强windows支持,支持自定义进程和文件更新检测重启
windows启动方式,双击windows.bat,或者运行 php windows.php start
升级方式
一个超级好用的推送组件,强烈推荐。
参考 https://www.workerman.net/doc/webman/plugin/push.html
需要webman>=1.2.2 webman-framework>=1.2.1
需要webman>=1.2.2 webman-framework>=1.2.1
增加以下命令
version 打印webman版本号route:list 打印当前路由配置make:controller 创建一个控制器文件make:model 创建一个model文件make:middleware 创建一个中间件文件make:command 创建自定义命令文件plugin:create 创建一个插件项目plugin:export 导出插件项目Route::getRoutes();方法用于获取全部路由config()获取其它配置文件内容