最近更新

webman-framework 1.5.0 - 2023-02-01

支持workerman v5协程版本
增加support\Context类用于记录协程上下文

更多参考 https://github.com/walkor/webman-framework/releases

webman-framework 1.4.8 - 2022-10-18

webman-framework 1.4.6 - 2022-09-19

默认关闭控制器复用

利用命令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 的贡献

helpers.php里路径相关函数支持子路径参数

例如

public_path('css/main.css');
//相当于
public_path() . '/css/main.css';

感谢 377960738 的贡献

自带的Container支持简单的依赖注入

参见 https://github.com/walkor/webman-framework/pull/69
感谢 krissss 的贡献

url驼峰支持短线(-)格式

例如 /user/login-check 等同于 /user/loginCheck 等同于 /user/logincheck

其它更多变更请参考 github

workerman 4.1.0 - 2022-08-20

  • 要求PHP>=7.0 (PHP<7的用户请继续使用4.0版本)
  • 使用更安全的随机函数

webman-framework 1.4.2 - 2022-08-15

  • 支持应用插件
  • 支持自动路由,无需再安装auto-route插件
  • 可选择不复用控制器,每次请求都会调用控制器__construct()方法,无需再安装action-hook插件
  • 视图后缀文件配置必须在 views.options里配置
  • 增加$request->plugin属性,用于标记当前请求属于哪个插件

更多参考 webman1.4升级指南

workerman 4.0.41 - 2022-07-19

workerman 4.0.40 - 2022-07-18

  • 大文件上传内存优化
  • 修复session Gc时机问题
  • 增加fastcgi客户端协议

webman-framwork 1.3.19 - 2022-07-01

  • 支持Model智能提示

webman-framwork 1.3.16 - 2022-06-09

  • 支持在中间件中通过 $response->exception(); 获取业务异常
  • 支持在中间件中通过 $request->route->param(); 获取路由参数

webman-framwork 1.3.14 - 2022-05-17

  • config/session.php中支持更多Session相关配置

webman-framework 1.3.10 - 2022-04-22

  • 安装或更新webman不再覆盖 support/helpers.php
  • 增强 $request->getRealIp() 方法
  • 支持 server.stop_timeout 配置,用于控制停止webman的超时时间(需要workerman>=4.0.34),默认2秒。

workerman 4.0.34 - 2022-04-21

  • Workerman\Protocols\Http\Request::sessionId($sid) 支持sid函数
  • 优化多文件上传
  • Session支持 RedisClusterSessionHandler
  • Session RedisSessionHandler 支持 心跳和重连
  • 支持 Workerman\Worker::$stopTimeout参数,用于控制停止workerman的超时时间

webman-framework 1.3.0 - 2022-03-11

  • 支持控制器后缀配置(例如 app.controller_suffix => 'Controller',没有key的话自行创建。不需要后缀无需设置)
  • 支持app下目录及类命名空间大写 (推荐小写),support命名空间支持大写(推荐小写)
  • 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目录覆盖到新项目。

webman 1.2.5版本 - 2022-03-04

  • 支持 monolog processors 设置 by @teg1c
  • config/server.php 支持 event-loop设置
    event_loop默认为空,系统会自动选择最优的事件循环库。
    如果你想指定事件循环库,例如Swoole,则设置'event_loop' => Workerman\Events\Swoole::class,
  • config/server.php 支持 request_class设置
    request_class 默认使用 support\Request::class
  • config/app.php 支持 public_path runtime_path 目录设置,用于设置静态文件目录和rutime目录

webman 支持gatewayWorker插件 - 2022-02-15

https://www.workerman.net/plugin/5

需要webman>=1.2.2 webman-framework>=1.2.1

webman 1.2.4 webman-framework 1.2.4 - 2022-02-11

增加phar打包功能,可将webman项目打包成一个phar文件,方便部署。
参见 phar打包

webman 1.2.3 2022-02-10

增强windows支持,支持自定义进程和文件更新检测重启
windows启动方式,双击windows.bat,或者运行 php windows.php start
升级方式

webman/push - 2022-01-11

一个超级好用的推送组件,强烈推荐。
参考 https://www.workerman.net/doc/webman/plugin/push.html

需要webman>=1.2.2 webman-framework>=1.2.1

webman/console - 2022-01-10

需要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 导出插件项目

webman1.2.0 (webman-framework 1.2.0) - 2022-01-09

  • 支持插件 ,参见 https://www.workerman.net/doc/webman/plugin.html
  • FileMonitor进程改名为Monitor,并增加进程内存监控,当进程占用内存即将超过php.ini中memroy_limit设置时重启对应进程
  • 删除了config/server.php 中 max_request 设置
  • 支持 Route::getRoutes();方法用于获取全部路由
  • 支持配置文件调用config()获取其它配置文件内容
🔝