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"
}
这怎么处理
关于 LearnKu
这个错误是 PHP 8.1 + 环境下的兼容性问题,具体是七牛云 PHP SDK 的构造函数参数没有显式声明可为空(nullable),导致 PHP 发出弃用警告。虽然 API 返回了成功响应,但这个警告需要修复以确保代码在未来版本的 PHP 中正常运行。
问题原因
在 PHP 8.1 及更高版本中,如果你有一个构造函数参数默认值为null,必须显式声明该参数为?type(即可为空类型),否则会触发弃用警告。例如:
错误写法(PHP 8.1 + 会警告):
正确写法:
更新七牛云 SDK 到最新版本
看看升级七牛包试试
是不是php版本过高?例如php8.4降到php 8.3看看