我根據(jù)官方的文檔想操作MySQL數(shù)據(jù)庫(kù)類(lèi),但是出現(xiàn)問(wèn)題,具體如下:
我基于官方的workerman的版本,里面的Applications自帶Todpole,根據(jù)文檔,我在Todpole/Config里面新建DB.php,然后修改Todpole/Event.php增加了use \GatewayWorker\Lib\Db,代碼邏輯里面我寫(xiě)這么一段$ret = Db::instance('db')->query("select * from user");
運(yùn)行的時(shí)候報(bào)錯(cuò):
PHP Fatal error: Class 'Config\Db' not found in /var/www/html/workerman/GatewayWorker/Lib/Db.php on line 22
Fatal error: Class 'Config\Db' not found in /var/www/html/workerman/GatewayWorker/Lib/Db.php on line 22
WORKER EXIT UNEXPECTED E_ERROR Class 'Config\Db' not found in /var/www/html/workerman/GatewayWorker/Lib/Db.php on line 22
worker exit with status 65280
我覺(jué)得應(yīng)該是我目錄結(jié)構(gòu)不對(duì),但是試了很長(zhǎng)時(shí)間沒(méi)找出來(lái),所以來(lái)求助!
workerman分為主進(jìn)程和子進(jìn)程,主進(jìn)程一般不加載業(yè)務(wù)代碼,所以沒(méi)有添加業(yè)務(wù)的autoload邏輯,而是由子進(jìn)程加載業(yè)務(wù)代碼并運(yùn)行
在啟動(dòng)腳本(一般是Applictions/xxx/start.php)中直接運(yùn)行的代碼是屬于主進(jìn)程的
而onXXX回調(diào)是屬于子進(jìn)程的,并在子進(jìn)程中運(yùn)行
你的問(wèn)題可能是在主進(jìn)程運(yùn)行了 Db::instance('db')->query("select * from user");
可以吧 Db 操作放在onXXX里面運(yùn)行試下