【已解决】隐式将参数标记为可为 null 在 PHP 8.4 中已被弃用

willvar

问题描述

在 PHP 8.4 上使用 workerman/http-client 时报错,来自此处$base参数。

程序代码

use Workerman\Worker;

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

$worker = new Worker();
$worker->eventLoop = \Workerman\Events\Fiber::class;
$worker->onWorkerStart = function () {
    $http = new Workerman\Http\Client();
    $response = $http->request('https://example.com/', [
        'method' => 'POST',
        'version' => '1.1',
        'headers' => ['Connection' => 'keep-alive'],
        'data' => ['key1' => 'value1', 'key2' => 'value2'],
    ]);
    echo $response->getBody();
};
Worker::runAll();

报错信息

ErrorException: Workerman\Psr7\Uri::isSameDocumentReference(): Implicitly marking parameter $base as nullable is deprecated, the explicit nullable type must be used instead

操作系统及workerman/webman等框架组件具体版本

workerman: 5.1.0
webman: 2.1.1
php: 8.4.4 (Jit on)
linux: 6.13.5

232 1 0
1个回答

发了新版本,升级下 workerman/psr7

×
🔝