最近開始接觸和開發(fā)Swoole,剛開始接觸的時候真的是一臉蒙圈,找了很多資料去了解。最近在做Swoole的一些高級功能,結(jié)合實際項目總結(jié)一些Thinkphp6.0框架集成Swoole的一些經(jīng)驗,結(jié)合網(wǎng)絡(luò)上的一些資料整理后分享出來。
推薦教程:《thinkphp》《swoole教程》
由于 Swoole 服務(wù)運行過程中 PHP 文件是常駐內(nèi)存運行的,這樣可以避免重復(fù)讀取磁盤、重復(fù)解釋編譯 PHP,以便達(dá)到最高性能。所以更改業(yè)務(wù)代碼后必須手動 reload 或者 restart 才能生效。
think-swoole 擴展提供了熱更新功能,在檢測到相關(guān)目錄的文件有更新后會自動 reload,從而不需要手動進行 reload 操作,方便開發(fā)調(diào)試。
如果你的應(yīng)用開啟了調(diào)試模式,默認(rèn)是開啟熱更新的。原則上,在部署模式下不建議開啟文件監(jiān)控,一方面有性能損耗,另外一方面對文件所做的任何修改都需要確認(rèn)無誤才能進行更新部署。
ThinkPHP 6 在應(yīng)用的根目錄下默認(rèn)有一個 .example.env 文件,復(fù)制這個文件,并重新命名為 .env 。當(dāng)定義這個特殊的 .env 環(huán)境變量文件后,里面設(shè)置了APP_DEBUG = true 會默認(rèn)開啟熱更新,另外,也可以直接把 /app/config/swoole.php 里面的 hot_update 配置中的 enable 設(shè)置為 true。
.env
config/swoole.php