程式設計必知

作業系統

webman同時支援Linux系統和Windows系統下的執行。但由於workerman在Windows下無法支援多進程設置以及守護進程,因此建議僅將Windows系統用於開發環境開發調試使用,正式環境請使用Linux系統。

啟動方式

Linux系統使用指令 php start.php start (debug調試模式) php start.php start -d (守護進程模式) 啟動。
Windows系統執行windows.bat或者使用指令 php windows.php啟動,按下ctrl c停止。Windows系統不支援stop reload status reload connections等命令。

常駐記憶體

webman是常駐記憶體的框架,一般來說,PHP檔案載入記憶體後便會被複用,不會再次從硬碟讀取(模版檔案除外)。所以在正式環境中,業務代碼或配置變更後需要執行php start.php reload才能生效。如果是更改進程相關配置或者安裝了新的composer包需要重啟php start.php restart

為了方便開發,webman自帶一個monitor自定義進程用於監控業務檔案更新,當有業務檔案更新時會自動執行reload。此功能僅在workerman以debug方式運行(啟動時不加-d)時啟用。Windows使用者需要執行windows.bat或者php windows.php才能啟用。

關於輸出語句

在傳統的php-fpm項目中,使用echo var_dump等函數輸出數據會直接顯示在頁面上,而在webman中,這些輸出往往顯示在終端上,並不會顯示在頁面中(模版檔案中的輸出除外)。

不要執行exit die語句

執行die或者exit會使得進程退出並重啟,導致當前請求無法被正確響應。

不要執行pcntl_fork函數

pcntl_fork用戶創建一個進程,這在webman中是不允許的。