diff --git a/phpBB/config/default/container/services_event.yml b/phpBB/config/default/container/services_event.yml
index 8a55b933ac..5696275e64 100644
--- a/phpBB/config/default/container/services_event.yml
+++ b/phpBB/config/default/container/services_event.yml
@@ -9,6 +9,7 @@ services:
arguments:
- '@template'
- '@language'
+ - '%debug.exceptions%'
tags:
- { name: kernel.event_subscriber }
diff --git a/phpBB/language/en/common.php b/phpBB/language/en/common.php
index af9f8fe187..d7a1ce8e71 100644
--- a/phpBB/language/en/common.php
+++ b/phpBB/language/en/common.php
@@ -556,6 +556,7 @@ $lang = array_merge($lang, array(
),
'OPTIONS' => 'Options',
+ 'PAGE_NOT_FOUND' => 'The requested page could not be found.',
'PAGE_OF' => 'Page %1$d of %2$d',
'PAGE_TITLE_NUMBER' => 'Page %s',
'PASSWORD' => 'Password',
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,12 +16,20 @@ 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;
class kernel_exception_subscriber implements EventSubscriberInterface
{
+ /**
+ * Set to true to show full exception messages
+ *
+ * @var bool
+ */
+ protected $debug;
+
/**
* Template object
*
@@ -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 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();
}