我正试图让我的Laravel应用程序在生产中出现错误时向我发送电子邮件。基本上它是:
App::error(function(Exception $exception, $code)
{
if (App::environment('local')) { // not testing this on prod, duh
Event::fire('error.production', [$exception, $code]);
return View::make('error.default');
}
});
'error.production'事件只是发送到发送电子邮件的错误处理程序:
public function handle($exception, $code)
{
$result = $this->mailer
->setView('emails.error.production')
->setSubject('Production Error')
->setToAddress('me@myself.com')
->setToName('patricksaysi')
->setData(['exception' => $exception, 'code' => $code])
->send();
return $result;
}
电子邮件发送,但执行周期永远不会完成,因为它实际上能够向用户显示错误屏幕。这是因为我发送电子邮件时发生了另一个错误 - Allowed memory size of 536870912 bytes exhausted (tried to allocate 532414464 bytes)
。
我在上面return $result
函数的handle()
行上设置了断点,但从未到达过。我已经尝试逐步完成SwiftMailer“发送”循环,我可以说它是巨大的并且需要永远而且我从中学到了什么,除了它可能是导致内存分配错误的可能候选者。我在Laravel Homestead上运行这个,所以理论上环境应该是最佳的。这是一个非常简单的电子邮件/视图,只是吐出错误的正文和代码。什么想法可能会出错?有没有更好的方法来完成我在这里要做的事情?