Spaces:
No application file
No application file
namespace Mautic\Middleware; | |
use Mautic\CoreBundle\ErrorHandler\ErrorHandler; | |
use Symfony\Component\HttpFoundation\Request; | |
use Symfony\Component\HttpFoundation\Response; | |
use Symfony\Component\HttpKernel\HttpKernelInterface; | |
class CatchExceptionMiddleware implements HttpKernelInterface, PrioritizedMiddlewareInterface | |
{ | |
public const PRIORITY = 100; | |
/** | |
* @var HttpKernelInterface | |
*/ | |
protected $app; | |
public function __construct(HttpKernelInterface $app) | |
{ | |
$this->app = $app; | |
} | |
public function handle(Request $request, $type = self::MAIN_REQUEST, $catch = true) | |
{ | |
$content = 'The site is currently offline due to encountering an error. If the problem persists, please contact the system administrator. System administrators, check server logs for errors.'; | |
try { | |
$response = $this->app->handle($request, $type, $catch); | |
if ($response instanceof Response) { | |
return $response; | |
} | |
} catch (\Exception $exception) { | |
$content = ErrorHandler::getHandler()->handleException($exception, true); | |
} | |
return new Response($content, 500); | |
} | |
public function getPriority() | |
{ | |
return self::PRIORITY; | |
} | |
} | |