1.4升级指南
升级前请做好备份,执行以下命令升级
composer require workerman/webman-framework ^1.4.7 && composer require webman/console ^1.2.12 && php webman install
注意
如果无法升级,很可能是因为使用了composer代理,请使用以下命令composer config -g --unset repos.packagist
恢复使用composer官方数据源
功能特性及变更
应用插件
1.4版本支持应用插件,更多请参考应用插件
自动路由
1.4版本支持各种复杂的控制器目录规则,例如
app
app
├── admin
│ └── v1
│ └── v2
│ └── v3
│ └── controller
│ └── Index.php
└── controller
├── v1
│ └── Index.php
└── v2
└── v3
└── Index.php
也就是说 webman/auto-route
插件不再需要了
控制器复用开关
1.4版本允许关闭控制器复用,在config/app.php
中设置'controller_reuse' => false,
,这样每个请求都会重新初始化一个新的控制器,也就是说每个请求都会触发对应控制器的__construct()
构造函数,开发者可以在构造函数中为每个请求执行一些请求处理前的初始化工作。
因为可以关闭控制器复用,所以webman/action-hook
插件的不再需要了。
开启http服务
1.4 版本支持开启多个端口提供http服务。
参见慢业务处理
视图文件配置
后缀只能在view.php 的 options选项中配置。
不再支持的用法
use support\view\Raw;
return [
'handler' => Raw::class,
'view_suffix' => '.php'
];
正确的用法
use support\view\Raw;
return [
'handler' => Raw::class,
'options' => [
'view_suffix' => '.php'
]
];
session驱动命名空间变动
webman从1.4.0起更改了SessionHandler
类的命名空间,由原来的
use Webman\FileSessionHandler;
use Webman\RedisSessionHandler;
use Webman\RedisClusterSessionHandler;
改为
use Webman\Session\FileSessionHandler;
use Webman\Session\RedisSessionHandler;
use Webman\Session\RedisClusterSessionHandler;
为了避免升级后程序直接报错,Webman\FileSessionHandler
类仍然被保留一段时间,在未来版本中会被彻底移除。
此变更影响config/session.php
的'handler'
配置。