編程須知

操作系統

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中是不允許的。

composer安裝組件

composer require xxx/xxx 安裝的組件需要restart重啟才能生效。