Ниже у меня есть некоторый код в моем файле bootstrap.php, который должен отображать красивую страницу ошибки всякий раз, когда страница на сайте не может быть разрешена. Тем не менее, линия echo 'Todo: Friendly error page';
продолжает отображаться, прежде чем Bugsnag сможет получить информацию об ошибке. Любая помощь или понимание будут оценены.
/**
* Register the error handler
*/
$whoops = new \Whoops\Run;
if ($is_prod) {
$whoops->pushHandler(function($e){
echo 'Todo: Friendly error page';
});
$bugsnag = Bugsnag\Client::make("61a075bcdc8317eab9ed0ab86aada144");
Bugsnag\Handler::register($bugsnag);
} else {
$whoops->pushHandler(new \Whoops\Handler\PrettyPageHandler);
}
$whoops->register();
Это связано с тем, что только один обработчик ошибок может связываться с приложением, и в настоящее время он связывается с whoops, поэтому bugsnag никогда не вызывается.
Я бы рекомендовал использовать один обработчик ошибок, а затем вызывать Bugsnag оттуда, мы можем сделать это так.
$whoops = new \Whoops\Run;
if ($is_prod) {
$bugsnag = Bugsnag\Client::make("61a075bcdc8317eab9ed0ab86aada144");
$whoops->pushHandler(function($e) use($bugsnag) {
$bugsnag->notifyException($e);
echo 'Todo: Friendly error page';
});
} else {
$whoops->pushHandler(new \Whoops\Handler\PrettyPageHandler);
}
Других решений пока нет …