tencentyun / cos-php-sdk-v5

cos-php-sdk-v5
MIT License
183 stars 82 forks source link

PHP 8.1 无法使用 listObjects() #290

Closed big-dream closed 1 year ago

big-dream commented 1 year ago

代码:

$client->listObjects([
  "Bucket" => "cos-1251274180"
  "Delimiter" => "/"
  "EncodingType" => "url"
  "Prefix" => ""
]);

错误信息:

\vendor\guzzlehttp\guzzle-services\src\ResponseLocation\XmlLocation.php line 147:
strstr(): Passing null to parameter #1 ($haystack) of type string is deprecated

PHP 8.0和7.4都没问题,切换到8.1就不行了

big-dream commented 1 year ago

PHP 8.0 已经处于仅安全修复阶段了,建议尽早支持 8.1 和 8.2 版本 image

RazeSoldier commented 1 year ago

+1

cuixiping commented 1 year ago

deprecated 报警可以忽略

error_reporting(E_ALL ^ E_NOTICE ^ E_DEPRECATED);
big-dream commented 1 year ago

deprecated 报警可以忽略

error_reporting(E_ALL ^ E_NOTICE ^ E_DEPRECATED);

掩耳盗铃

cuixiping commented 1 year ago

deprecated 报警可以忽略

error_reporting(E_ALL ^ E_NOTICE ^ E_DEPRECATED);

掩耳盗铃

改源代码也很简单, 报错信息非常明确.

源文件

if (strstr($sentAs, ':')) {

改为

if ($sentAs !== null && strstr($sentAs, ':')) {
big-dream commented 1 year ago

deprecated 报警可以忽略

error_reporting(E_ALL ^ E_NOTICE ^ E_DEPRECATED);

掩耳盗铃

改源代码也很简单, 报错信息非常明确.

源文件

if (strstr($sentAs, ':')) {

改为

if ($sentAs !== null && strstr($sentAs, ':')) {

但这只是临时的解决方法呢

cuixiping commented 1 year ago

改为

if ($sentAs !== null && strstr($sentAs, ':')) {

但这只是临时的解决方法呢

哪里临时了? 你改了就一直能用

big-dream commented 1 year ago

改为

if ($sentAs !== null && strstr($sentAs, ':')) {

但这只是临时的解决方法呢

哪里临时了? 你改了就一直能用

你不用更新 composer 包?每次更新都得去改一次?

cuixiping commented 1 year ago

改为

if ($sentAs !== null && strstr($sentAs, ':')) {

但这只是临时的解决方法呢

哪里临时了? 你改了就一直能用

你不用更新 composer 包?每次更新都得去改一次?

lock起来, 无事不要随意更新.