国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

FileMonitor監(jiān)控報錯

收破爛的才子

問題:想把gatewaywork封裝下,啟動文件index.php首先是加載了vendor的core.php文件(文件內(nèi)容附件),可以正常運行;
代碼:

foreach(glob(APP_PATH.'_/start_.php') as $start_file)
{
    require_once $start_file;
}
// 標記是全局啟動
Worker::runAll();

但是如果引入一個對象啟動類比如Applicaiton::run();把上面的代碼放入運行,此時啟動后文件監(jiān)控在終端報錯!(報錯信息說文件夾為空)
結(jié)論:經(jīng)過測試發(fā)現(xiàn)只要將代碼:

foreach(glob(APP_PATH.'_/start_.php') as $start_file)
{
    require_once $start_file;
}

//這個代碼放入到core.php中,然后Worker::runAll();放入到封裝的Applicaiton::run();
下,可以正常運行。
疑問:難道我不能把引入的那段代碼放入到封裝的Applicaiton::run();下,保證core.php一個清爽的代碼:只有一行
Applicaiton::run();運行偉大的框架?
謝謝群主指導!

3873 5 0
5個回答

walkor 打賞

最后面截圖調(diào)用棧里很明顯 check_files_change($monitor_dir) 里$monitor_dir傳了null導致的。

https://github.com/walkor/workerman-filemonitor/blob/master/Applications/FileMonitor/start.php#L6
$monitor_dir在這里是一個全局變量,你看看你是不是把它,放入到函數(shù)里變成臨時變量了,導致讀不到$monitor_dir。

  • 暫無評論
收破爛的才子

@walkor 真的很感謝您,但是我排查了下,還是不能發(fā)現(xiàn)問題!我再提問的時候首先已經(jīng)看了手冊,同時也看論壇相關(guān)回答,但是仍然有問題。。。。。
問題如附件圖片
新的發(fā)現(xiàn):如果我把路徑寫死,可以運行,但是mysql會啟動好多次(圖片5,圖片6)
謝謝!

  • 暫無評論
damao

我看懂群主的意思了。

function a() 
{
    // 這個聲明是在一個函數(shù)內(nèi)部,是一個局部變量,不是全局變量
    $monitor_dir = xxxx;
    $worker = new Worker(..);
    $worker->onWorkerStart = function(){
        global $monitor_dir;  // 因為沒有全局變量$monitor_dir,所以這里$monitor_dir是null
        ....
    }
}
damao

其實可以定義常量, define('MONITOR_DIR', 'xxxxxxx');
這樣肯定哪里都能訪問到了

  • 暫無評論
damao

最后提示意思是GatewayWorker/Lib/DbConnection類不在使用了,讓用Workerman/Mysql類

  • 收破爛的才子 2017-04-11

    這個我知道,源碼沒有區(qū)別,直接吧源碼的echo注釋掉

  • 收破爛的才子 2017-04-11

    關(guān)鍵是最后為何reload那么多次?這個比較郁悶,正常不會那么多次

年代過于久遠,無法發(fā)表回答
??