【问题标题】:Laravel causes PHP warning (exception not caught) xdebug enabled, otherwise all is fineLaravel 导致 PHP 警告(异常未捕获)启用 xdebug,否则一切正常
【发布时间】:2018-03-14 15:18:49
【问题描述】:

启用 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() 中被抛出,但在战后被捕获(如果 xdebug 关闭)。 Xdebug 开启了,它不再工作了。

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

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

【问题讨论】:

    标签: xdebug php-7.1


    【解决方案1】:

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

    【讨论】:

    • 知道如何使测试用例更小吗?
    【解决方案2】:

    更多信息/快速修复:

    我正在使用

    xdebug.collect_params=4

    xdebug.collect_params=1

    错误没有出现。

    该错误仅在更新到 PHP 7.1.15 后才会出现 - PHP 7.2 不会出现此问题

    文档中还有一个关于巨大脚本的警告:

    https://xdebug.org/docs/all_settings

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-07
      • 2015-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-09
      相关资源
      最近更新 更多