%PDF- %PDF-
Direktori : /www/varak.net/losik.varak.net/vendor/nette/application/src/Application/ |
Current File : //www/varak.net/losik.varak.net/vendor/nette/application/src/Application/ErrorPresenter.php |
<?php /** * This file is part of the Nette Framework (https://nette.org) * Copyright (c) 2004 David Grudl (https://davidgrudl.com) */ declare(strict_types=1); namespace NetteModule; use Nette; use Nette\Application; use Nette\Http; use Tracy\ILogger; /** * Default Error Presenter. */ final class ErrorPresenter implements Application\IPresenter { use Nette\SmartObject; /** @var ILogger|null */ private $logger; public function __construct(?ILogger $logger = null) { $this->logger = $logger; } public function run(Application\Request $request): Application\Response { $e = $request->getParameter('exception'); if ($e instanceof Application\BadRequestException) { $code = $e->getHttpCode(); } else { $code = 500; if ($this->logger) { $this->logger->log($e, ILogger::EXCEPTION); } } return new Application\Responses\CallbackResponse(function (Http\IRequest $httpRequest, Http\IResponse $httpResponse) use ($code): void { if (preg_match('#^text/html(?:;|$)#', (string) $httpResponse->getHeader('Content-Type'))) { require __DIR__ . '/templates/error.phtml'; } }); } }