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