Guzzle:未捕获的异常和内存泄漏

Guzzle: Uncaught exception & memory leak

我在使用 Guzzle

时遇到奇怪的问题

当我尝试模拟错误请求(例如 returns 状态代码 404 的请求)时,Guzzle 会抛出一个 ClientException,其中包含该请求失败原因的所有详细信息。

当我尝试捕获此异常时,我的脚本退出并出现致命错误,表明我没有捕获异常,并且它显示 XDebug 跟踪,表明我不知何故发生了内存泄漏。

我的代码如下所示:
注意: httpClient 是 GuzzleHttp/CLient 的有效实例。

$request  = $this->httpClient->createRequest(
    'GET',
    '/templates/'.$id
);

try {
    $response = $this->httpClient->send($request);
} catch (\Exception $exception) {
    die('exception occured');
}

我最终遇到的错误如下:
Guzzle 堆栈跟踪

内存泄漏

有人对可能导致此未捕获异常 + 泄漏的原因有什么建议吗?

您的 XDebug 想要消耗比定义限制更多的内存

您的限制是:512MO 脚本
您的 XDebug 想要消耗:652MO

您有 2 个解决方案来解决此技术问题
1 - 更新你的 php.ini => memory_limit = 768M 然后重启你的服务器
2 - 在您的 PHP 脚本中将此行代码放在顶部:

ini_set("memory_limit","768M");

现在您必须通过禁用 XDebug

完全确定您的生产环境中不会发生此内存泄漏