编程须知

操作系统

webman同时支持linux系统和windows系统下运行。但是由于workerman在windows下无法支持多进程设置以及守护进程,因此windows系统仅仅建议用于开发环境开发调试使用,正式环境请使用linux系统。

启动方式

linux系统

php start.php start

此命令为调试模式,一般在开发时使用,文件更新monitor进程会自动检测reload,打印数据时在终端显示,终端关闭后webman也会自动关闭。

php start.php start -d

此命令为守护进程模式,在正式环境使用,关闭终端后webman继续运行,打印数据终端无显示。
更新代码需要执行php start.php reload 或者 php start.php restart -d更新。

windows系统

执行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中是不允许的。