laravel 11接口返回Deprecated怎么处理

今天玩了下laravel 11,但是发现装了 overtrue/flysystem-qiniu.

接口就会多返回一些东西:

<br/><b>Deprecated</b>:  Qiniu\Config::__construct(): Implicitly marking parameter $z as nullable is deprecated, the explicit nullable type must be used instead in <b>/www/wwwroot/tasklist.localhost/vendor/qiniu/php-sdk/src/Qiniu/Config.php</b> on line <b>44</b><br/>{
    "success": true,
    "message": "\u9a8c\u8bc1\u7801\u53d1\u9001\u6210\u529f",
    "debug_code": "123456"
}

这怎么处理

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 8

这个错误是 PHP 8.1 + 环境下的兼容性问题,具体是七牛云 PHP SDK 的构造函数参数没有显式声明可为空(nullable),导致 PHP 发出弃用警告。虽然 API 返回了成功响应,但这个警告需要修复以确保代码在未来版本的 PHP 中正常运行。

问题原因

在 PHP 8.1 及更高版本中,如果你有一个构造函数参数默认值为null,必须显式声明该参数为?type(即可为空类型),否则会触发弃用警告。例如:
错误写法(PHP 8.1 + 会警告):

public function __construct($param = null) {} // 未显式声明类型

正确写法:

public function __construct(?string $param = null) {} // 显式声明可为空

更新七牛云 SDK 到最新版本

1个月前 评论
wongvio (楼主) 1个月前
Rache1 1个月前
wongvio (楼主) 1个月前
Rache1 1个月前
Epona

看看升级七牛包试试

1个月前 评论
wongvio (楼主) 1个月前

是不是php版本过高?例如php8.4降到php 8.3看看

1个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!