Laravel导致PHP警告(异常未捕获)xdebug启用,否则一切正常

时间:2018-03-14 15:18:49

标签: xdebug php-7.1

启用xdebug后,我可以重现错误:

composer create-project laravel/laravel
cd laravel
composer require proengsoft/laravel-jsvalidation
php artisan vendor:publish --provider="Proengsoft\JsValidation\JsValidationServiceProvider" --tag=public

错误:

PHP Warning:  Uncaught League\Flysystem\Plugin\PluginNotFoundException: Plugin not found for method: read in /tmp/laravel/vendor/league/flysystem/src/Plugin/PluggableTrait.php:49

堆栈追踪:

但是如果没有启用xdebug,一切运行正常。

我想知道在向xdebug报告之前,这种情况是仅发生在我身上还是发生在其他人身上。

php -v
PHP 7.1.15-1+ubuntu16.04.1+deb.sury.org+2


Package: php-xdebug
Version: 2.6.0+2.5.5-1+ubuntu16.04.1+deb.sury.org+1

Composer.lock供参考

https://gist.github.com/amenk/9d63975cf4aabf86288b79fb95e8156c

我在Flysystem中跟踪了以下函数:

public function invokePluginOnFilesystem($method, $arguments, $prefix)
{
    $filesystem = $this->getFilesystem($prefix);

    try {
        return $this->invokePlugin($method, $arguments, $filesystem);
    } catch (PluginNotFoundException $e) {
        // Let it pass, it's ok, don't panic.
    }

    $callback = [$filesystem, $method];

    return call_user_func_array($callback, $arguments);
}

在invokePlugin()中抛出异常,但是在postwars(如果xdebug关闭)时捕获了异常。 Xdebug开启了,不再适用了。

我已经为PHP-CLI设置了1G内存限制。

错误报告https://bugs.xdebug.org/view.php?id=1535

2 个答案:

答案 0 :(得分:2)

这不是一个真正的问题,而是一个错误报告。由于异常,我可以很容易地重现各种各样的不稳定因素。请在https://bugs.xdebug.org提交错误报告 - 最好使用更小的测试用例

答案 1 :(得分:0)

更多信息/快速修复:

我正在使用

xdebug.collect_params = 4

xdebug.collect_params = 1

错误没有出现。

此错误仅在更新到PHP 7.1.15后出现 - 并且不会出现在PHP 7.2中

还有关于文档中的大型脚本的警告:

https://xdebug.org/docs/all_settings

  

该设置默认为0,因为它可能使用非常大的脚本   巨大的内存,因此使巨大的不可能   要运行的脚本。您可以最安全地打开此设置,但您可以   期望在有很多函数调用的脚本中出现一些问题和/或   巨大的数据结构作为参数。 Xdebug 2不会有这个   内存使用量增加的问题,因为它永远不会存储它   记忆中的信息。相反,它只会被写入磁盘。这个   意味着您需要查看磁盘使用情况。