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

以Composer安裝的workerman的pid文件生成的位置很詭異

forgaoqiang
root@iZ2zeil:/opt/php# find ./ -name *.pid
./vendor/workerman/_opt_php_serv.php.pid

是不是考慮兼容下,這幾個(gè)文件放置在項(xiàng)目根目錄還是比較合理的,在vendor下就不太有意義的感覺(jué)了,是不是添加個(gè)判斷啥的看看是不是PSR4模式?

從源碼來(lái)看不只是pid文件,日志文件的路徑也有這樣的問(wèn)題

        // Start file.
        $backtrace        = \debug_backtrace();
        static::$_startFile = $backtrace[\count($backtrace) - 1]['file'];

        $unique_prefix = \str_replace('/', '_', static::$_startFile);

        // Pid file.
        if (empty(static::$pidFile)) {
            static::$pidFile = __DIR__ . "/../$unique_prefix.pid";
        }

        // Log file.
        if (empty(static::$logFile)) {
            static::$logFile = __DIR__ . '/../workerman.log';
        }
        $log_file = (string)static::$logFile;
        if (!\is_file($log_file)) {
            \touch($log_file);
            \chmod($log_file, 0622);
        }

另外請(qǐng)教下使用 這里的debug_backtrace()如果僅僅是為了獲取文件所在的位置,和使用 __FILE__ 有什么區(qū)別

2097 2 0
2個(gè)回答

walkor 打賞

感謝你的建議。
之前有考慮過(guò)項(xiàng)目根目錄創(chuàng)建一個(gè)runtime目錄,將pid和日志等放到runtime下。但是如果框架粗暴的更改pid位置,用戶不停服務(wù)就升級(jí)后會(huì)導(dǎo)致正在運(yùn)行的服務(wù)pid找不到,導(dǎo)致停止失敗。所以一直沒(méi)動(dòng)這里。

__FILE__ 是獲取當(dāng)前文件,使用 debug_backtrace() 是因?yàn)橐玫絾?dòng)服務(wù)的入口文件start.php ,在框架里使用__FILE__得不到start.php文件位置

  • forgaoqiang 2021-07-26

    再問(wèn)一個(gè)問(wèn)題,新版本的workerman很多函數(shù)前面都有 \ ,比如上面的

    if (!\is_file($log_file)) {
    \touch($log_file);
    \chmod($log_file, 0622);
    }

    這個(gè)目的是什么呢,是為了結(jié)構(gòu)更加清晰么,這些函數(shù)都是系統(tǒng)級(jí)的,不用指定命名空間也都可以直接調(diào)用吧

forgaoqiang

之前有考慮過(guò)項(xiàng)目根目錄創(chuàng)建一個(gè)runtime目錄,將pid和日志等放到runtime下。但是如果框架粗暴的更改pid位置,用戶不停服務(wù)就升級(jí)后會(huì)導(dǎo)致正在運(yùn)行的服務(wù)pid找不到,導(dǎo)致停止失敗。所以一直沒(méi)動(dòng)這里。

這個(gè)原因特別有說(shuō)服力,我發(fā)現(xiàn)嘗試修改進(jìn)程的 $processTitle 也有這個(gè)問(wèn)題,直接導(dǎo)致找不到之前的程序

關(guān)于debug_backtrace()的多謝回復(fù),原來(lái)如此

  • 暫無(wú)評(píng)論
年代過(guò)于久遠(yuǎn),無(wú)法發(fā)表回答
??