1.4升級(jí)指南
升級(jí)前請(qǐng)做好備份,執(zhí)行以下命令升級(jí)
composer require workerman/webman-framework ^1.4.7 && composer require webman/console ^1.2.12 && php webman install
注意
如果無(wú)法升級(jí),很可能是因?yàn)槭褂昧薱omposer代理,請(qǐng)使用以下命令composer config -g --unset repos.packagist
恢復(fù)使用composer官方數(shù)據(jù)源
功能特性及變更
應(yīng)用插件
1.4版本支持應(yīng)用插件,更多請(qǐng)參考應(yīng)用插件
自動(dòng)路由
1.4版本支持各種復(fù)雜的控制器目錄規(guī)則,例如
app
app
├── admin
│?? └── v1
│?? └── v2
│?? └── v3
│?? └── controller
│?? └── Index.php
└── controller
├── v1
│?? └── Index.php
└── v2
└── v3
└── Index.php
也就是說(shuō) webman/auto-route
插件不再需要了
控制器復(fù)用開(kāi)關(guān)
1.4版本允許關(guān)閉控制器復(fù)用,在config/app.php
中設(shè)置'controller_reuse' => false,
,這樣每個(gè)請(qǐng)求都會(huì)重新初始化一個(gè)新的控制器,也就是說(shuō)每個(gè)請(qǐng)求都會(huì)觸發(fā)對(duì)應(yīng)控制器的__construct()
構(gòu)造函數(shù),開(kāi)發(fā)者可以在構(gòu)造函數(shù)中為每個(gè)請(qǐng)求執(zhí)行一些請(qǐng)求處理前的初始化工作。
因?yàn)榭梢躁P(guān)閉控制器復(fù)用,所以webman/action-hook
插件的不再需要了。
開(kāi)啟http服務(wù)
1.4 版本支持開(kāi)啟多個(gè)端口提供http服務(wù)。
參見(jiàn)慢業(yè)務(wù)處理
視圖文件配置
后綴只能在view.php 的 options選項(xiàng)中配置。
不再支持的用法
use support\view\Raw;
return [
'handler' => Raw::class,
'view_suffix' => '.php'
];
正確的用法
use support\view\Raw;
return [
'handler' => Raw::class,
'options' => [
'view_suffix' => '.php'
]
];
session驅(qū)動(dòng)命名空間變動(dòng)
webman從1.4.0起更改了SessionHandler
類(lèi)的命名空間,由原來(lái)的
use Webman\FileSessionHandler;
use Webman\RedisSessionHandler;
use Webman\RedisClusterSessionHandler;
改為
use Webman\Session\FileSessionHandler;
use Webman\Session\RedisSessionHandler;
use Webman\Session\RedisClusterSessionHandler;
為了避免升級(jí)后程序直接報(bào)錯(cuò),Webman\FileSessionHandler
類(lèi)仍然被保留一段時(shí)間,在未來(lái)版本中會(huì)被徹底移除。
此變更影響config/session.php
的'handler'
配置。