/**
* Event fired on database connection failure.
*
* @param FailedConnectionEvent $args
*
* @throws LowLevelDatabaseException
*/
public function failConnect(FailedConnectionEvent $args)
{
$e = $args->getException();
$this->logger->debug($e->getMessage(), ['event' => 'exception', 'exception' => $e]);
// Trap double exceptions
set_exception_handler(function () {
});
/*
* Using Driver here since Platform may try to connect
* to the database, which has failed since we are here.
*/
$platform = $args->getDriver()->getName();
$platform = Str::replaceFirst('pdo_', '', $platform);
throw LowLevelDatabaseException::failedConnect($platform, $e);
}