aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMate Bartus <mate.bartus@gmail.com>2015-11-28 12:43:58 +0100
committerMate Bartus <mate.bartus@gmail.com>2015-11-30 13:50:29 +0100
commit151535fdaf52e2847074a861252d4f24850d2949 (patch)
tree55b28830982322af78aaa89487fe4e56471cd480
parent1316fe208482d0a56ce6e54b79a1a00ae05d32ce (diff)
downloadforums-151535fdaf52e2847074a861252d4f24850d2949.tar
forums-151535fdaf52e2847074a861252d4f24850d2949.tar.gz
forums-151535fdaf52e2847074a861252d4f24850d2949.tar.bz2
forums-151535fdaf52e2847074a861252d4f24850d2949.tar.xz
forums-151535fdaf52e2847074a861252d4f24850d2949.zip
[ticket/14311] Show errors in installer invoked by trigger_error
PHPBB3-14311
-rw-r--r--phpBB/install/startup.php32
1 files changed, 31 insertions, 1 deletions
diff --git a/phpBB/install/startup.php b/phpBB/install/startup.php
index b40face4f8..ecf42a5ad0 100644
--- a/phpBB/install/startup.php
+++ b/phpBB/install/startup.php
@@ -47,6 +47,36 @@ function phpbb_include_updated($path, $phpbb_root_path, $optional = false)
}
}
+function installer_msg_handler($errno, $msg_text, $errfile, $errline)
+{
+ switch ($errno)
+ {
+ case E_NOTICE:
+ case E_WARNING:
+ case E_USER_WARNING:
+ case E_USER_NOTICE:
+ $msg = '[phpBB debug] "' . $msg_text . '" in file ' . $errfile . ' on line ' . $errline;
+ throw new \phpbb\exception\runtime_exception($msg);
+ break;
+ case E_USER_ERROR:
+ $msg = '<b>General Error:</b><br />' . $msg_text . '<br /> in file ' . $errfile . ' on line ' . $errline;
+
+ $backtrace = get_backtrace();
+ if ($backtrace)
+ {
+ $msg .= '<br /><br />BACKTRACE<br />' . $backtrace;
+ }
+
+ throw new \phpbb\exception\runtime_exception($msg);
+ break;
+ case E_DEPRECATED:
+ return true;
+ break;
+ }
+
+ return false;
+}
+
phpbb_require_updated('includes/startup.' . $phpEx, $phpbb_root_path);
phpbb_require_updated('phpbb/class_loader.' . $phpEx, $phpbb_root_path);
@@ -69,7 +99,7 @@ phpbb_require_updated('includes/functions_user.' . $phpEx, $phpbb_root_path);
phpbb_require_updated('includes/utf/utf_tools.' . $phpEx, $phpbb_root_path);
// Set PHP error handler to ours
-set_error_handler(defined('PHPBB_MSG_HANDLER') ? PHPBB_MSG_HANDLER : 'msg_handler');
+set_error_handler(defined('PHPBB_MSG_HANDLER') ? PHPBB_MSG_HANDLER : 'installer_msg_handler');
$phpbb_installer_container_builder = new \phpbb\di\container_builder($phpbb_root_path, $phpEx);
$phpbb_installer_container_builder