debugging curl_multi_exec(多个卷执行):不赞成将null传递给int类型的参数$still_running-为什么只在某些环境中传递?

w8biq8rn  于 2022-11-14  发布在  其他
关注(0)|答案(1)|浏览(141)

我们在Magento 2包(elasticsuite)中使用https://github.com/ezimuel/ringphp,它在我们的CI(PHP 8.1.7,Ubuntu Docker容器)上运行良好。
现在,在登台阶段,我们收到了弃用警告。
https://github.com/ezimuel/ringphp/blob/1c444ad129861e70dc0fb00a2b9ed7f1d7c4b953/src/Client/CurlMultiHandler.php#L133
我们可以使用n98-magerun 2 dev控制台重现此情况:
n98-magerun 2设备:配置

>>> $foo = curl_multi_init(); $still_running = null; curl_multi_exec($foo, 
$still_running);
PHP Deprecated:  curl_multi_exec(): Passing null to parameter #2 ($still_running) of 
type int is deprecated in phar:///usr/local/bin/n98-magerun2eval()'d code on line 3
>>> echo error_reporting();
32767⏎

错误报告在两台机器上都是一样的-为什么有时会中断,有时会完美地工作?还有什么不同呢?
问题本身的解决方法似乎

if ($this->active === null) $this->active = 0;

在线以上。
https://github.com/ezimuel/ringphp/pull/6

lrpiutwd

lrpiutwd1#

你不是一个人,似乎这个问题与新文物有关。
它已在此pull请求中得到修复:https://github.com/ezimuel/ringphp/pull/6/commits/0b6c73b88b869bd8c2591213f54abbf0f7cdea37
你可以应用它有以下几点:

composer require cweagans/composer-patches

把这个添加到你的composer.json:

"extra": {
    "patches": {
      "ezimuel/ringphp": {
        "Fix: PHP 8.1 deprecation warning": "https://github.com/ezimuel/ringphp/pull/6/commits/0b6c73b88b869bd8c2591213f54abbf0f7cdea37.patch"
      }
    }
  }

相关问题