webman-php / gateway-worker

webman gateway-worker plugin
https://www.workerman.net/webman
MIT License
14 stars 3 forks source link

windows 下 debug_backtrace() 获取文件路径的问题 #2

Closed krissss closed 2 years ago

krissss commented 2 years ago

环境: windows

错误: ErrorException: Undefined index: file

复现: 直接执行 windows 下生成的 runtime/windows/xxx.php 文件(运行 php windows.php 同样触发问题) 示例代码如下:

<?php
require_once __DIR__ . '/../../vendor/autoload.php';

use Workerman\Worker;
use Webman\Config;
use support\App;

ini_set('display_errors', 'on');
error_reporting(E_ALL);

if (is_callable('opcache_reset')) {
    opcache_reset();
}

App::loadAllConfig(['route']);

worker_start('plugin.webman.gateway-worker.gateway', config('plugin.webman.gateway-worker.process')['gateway']);

if (DIRECTORY_SEPARATOR != "/") {
    Worker::$logFile = config('server')['log_file'] ?? Worker::$logFile;
}

Worker::runAll();
krissss commented 2 years ago

目前发现的原因是在 __construct 中执行的 debug_backtrace() 是无法获取到 file 这个 key 的,具体原因还不了解

同时还想了解下此处为何需要通过 debug_backtrace() 来获取当前文件的路径,而不是直接 FILE

walkor commented 2 years ago

更新下 composer require workerman/gateway-worker ^v3.0.23

krissss commented 2 years ago

问题依然存在,是当前这个包里的 debug_backtrace() 引起的问题