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'配置。