diff options
Diffstat (limited to 'phpBB/phpbb/event/kernel_exception_subscriber.php')
-rw-r--r-- | phpBB/phpbb/event/kernel_exception_subscriber.php | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/phpBB/phpbb/event/kernel_exception_subscriber.php b/phpBB/phpbb/event/kernel_exception_subscriber.php index b7a54f2608..373e59b0c8 100644 --- a/phpBB/phpbb/event/kernel_exception_subscriber.php +++ b/phpBB/phpbb/event/kernel_exception_subscriber.php @@ -16,6 +16,7 @@ namespace phpbb\event; use Symfony\Component\EventDispatcher\EventSubscriberInterface; use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\HttpKernel\Exception\HttpExceptionInterface; +use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; use Symfony\Component\HttpKernel\KernelEvents; use Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent; use Symfony\Component\HttpFoundation\Response; @@ -23,6 +24,13 @@ use Symfony\Component\HttpFoundation\Response; class kernel_exception_subscriber implements EventSubscriberInterface { /** + * Set to true to show full exception messages + * + * @var bool + */ + protected $debug; + + /** * Template object * * @var \phpbb\template\template @@ -44,9 +52,11 @@ class kernel_exception_subscriber implements EventSubscriberInterface * * @param \phpbb\template\template $template Template object * @param \phpbb\language\language $language Language object + * @param bool $debug Set to true to show full exception messages */ - public function __construct(\phpbb\template\template $template, \phpbb\language\language $language) + public function __construct(\phpbb\template\template $template, \phpbb\language\language $language, $debug = false) { + $this->debug = $debug || defined('DEBUG'); $this->template = $template; $this->language = $language; $this->type_caster = new \phpbb\request\type_cast_helper(); @@ -69,6 +79,10 @@ class kernel_exception_subscriber implements EventSubscriberInterface { $message = $this->language->lang_array($message, $exception->get_parameters()); } + else if (!$this->debug && $exception instanceof NotFoundHttpException) + { + $message = $this->language->lang('PAGE_NOT_FOUND'); + } // Show <strong> text in bold $message = preg_replace('#<(/?strong)>#i', '<$1>', $message); @@ -99,7 +113,7 @@ class kernel_exception_subscriber implements EventSubscriberInterface $data['message'] = $message; } - if (defined('DEBUG')) + if ($this->debug) { $data['trace'] = $exception->getTrace(); } |