官网:https://www.workerman.net/doc/webman/attention.html
webman是什么
Webman是一款基于Workerman构建的高性能服务框架,集成了HTTP、WebSocket、TCP、UDP等多种模块。通过常驻内存、协程、连接池等先进技术,Webman不仅突破了传统PHP的性能瓶颈,还极大地扩展了其应用场景。
此外,Webman还提供了强大的插件机制,使开发者能够快速集成和复用其他开发者开发的功能模块。无论是构建网站、开发HTTP接口、实现即时通讯、搭建物联网系统,还是开发游戏、TCP/UDP服务、Unix Socket服务等,Webman都能轻松应对,展现出卓越的性能和灵活性。
webman理念
以最小内核提供最大的扩展性与最强的性能。webman仅提供最核心的功能(路由、中间件、session、自定义进程接口)。其余功能全部复用composer生态,这意味着你可以在webman里使用最熟悉的功能组件,例如在数据库方面开发者可以选择使用Laravel的illuminate/database,也可以是ThinkPHP的ThinkORM,还可以是其它组件如Medoo。在webman里集成他们是非常容易的事情。
webman具有以下特点
1、高稳定性。webman基于workerman开发,workerman一直是业界bug极少的高稳定性socket框架。
2、超高性能。webman性能高于传统php-fpm框架10-100倍左右,比go的gin echo等框架性能高1倍左右。
3、高复用。无需修改,可以复用现有composer生态。
4、高扩展性。支持自定义进程,可以做workerman能做的任何事情。
5、超级简单易用,学习成本极低,代码书写与传统框架没有区别。
6、支持二进制打包,无需PHP环境即可直接运行。
7、使用最为宽松友好的MIT开源协议。
webman同时支持linux系统和windows系统下运行。但是由于workerman在windows下无法支持多进程设置以及守护进程,因此windows系统仅仅建议用于开发环境开发调试使用,正式环境请使用linux系统。
php start.php start
此命令为调试模式,一般在开发时使用,文件更新monitor进程会自动检测reload,打印数据时在终端显示,终端关闭后webman也会自动关闭。
php start.php start -d
此命令为守护进程模式,在正式环境使用,关闭终端后webman继续运行,打印数据终端无显示。
更新代码需要执行php start.php reload
或者 php start.php restart -d
更新。
执行windows.bat
或者使用命令 php windows.php
启动,按ctrl c 停止。
windows系统不支持stop reload status reload connections等命令。
windows不支持守护进程模式。
webman是常驻内存的框架,一般来说,php文件载入后便以opcode的方式常驻内存,不会再次从磁盘读取(模版文件除外)。
所以正式环境业务代码或配置变更后需要执行php start.php reload
才能生效。
如果是更改进程相关配置或者安装了新的composer包需要重启php start.php restart
。
为了方便开发,webman自带一个monitor自定义进程用于监控业务文件更新,当有业务文件更新时会自动执行reload。
此功能只在workerman以调试模式运行(启动时不加-d
)才启用。windows用户需要执行windows.bat
或者php windows.php
才能启用。
在传统php-fpm项目里,使用echo
var_dump
等函数输出数据会直接显示在页面里,而在webman开发过程中(调试模式启动时),这些输出往往显示在终端上,并不会显示在页面中(模版文件中的输出除外)。
exit
die
语句执行die或者exit会使得进程退出并重启,导致当前请求无法被正确响应。
pcntl_fork
函数pcntl_fork
用户创建一个进程,这在webman中是不允许的。
composer require xxx/xxx
安装的组件需要restart重启才能生效
如何安装webman
PHP >= 8.1
Composer >= 2.0
1. 创建项目
$ composer create-project workerman/webman:~2.0 www.webman.test
2. 运行
进入webman目录
windows用户
双击 windows.bat 或者运行 php windows.php 启动
linux用户
调试方式运行(用于开发调试,打印数据会显示在终端,终端关闭后webman服务也随之关闭)
$ cd www.webman.test $ php windows.php ---------------------------------------------- WORKERMAN ----------------------------------------------- Workerman/5.1.3 PHP/8.1.31 (JIT off) Windows NT/10.0 ----------------------------------------------- WORKERS ------------------------------------------------ worker listen processes status webman http://0.0.0.0:8787 1 [ok] monitor none 1 [ok]
3.访问
浏览器访问 http://ip地址:8787
本文为崔凯原创文章,转载无需和我联系,但请注明来自冷暖自知一抹茶ckhttp://www.cksite.cn