1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-02-25 20:44:01 +01:00

Merge pull request #4051 from CHItA/ticket/14311

[ticket/14311] Show errors in installer invoked by trigger_error
This commit is contained in:
Marc Alexander 2015-12-03 10:52:32 +01:00
commit b0dfca1dbf

View File

@ -47,6 +47,48 @@ function phpbb_include_updated($path, $phpbb_root_path, $optional = false)
}
}
function installer_msg_handler($errno, $msg_text, $errfile, $errline)
{
global $phpbb_installer_container;
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;
try
{
/** @var \phpbb\install\helper\iohandler\iohandler_interface $iohandler */
$iohandler = $phpbb_installer_container->get('installer.helper.iohandler');
$iohandler->add_warning_message($msg);
}
catch (\phpbb\install\helper\iohandler\exception\iohandler_not_implemented_exception $e)
{
print ($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 +111,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