diff options
| author | javiexin <javiexin@gmail.com> | 2017-03-09 16:12:25 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-03-09 16:12:25 +0100 |
| commit | bd12504f6cf03b36821a5cea2bf77a419496dcdb (patch) | |
| tree | d30cc3506e1bbdc284dc7cca910c5dac6b927ae0 /phpBB/phpbb/debug/debug.php | |
| parent | 96a90d3f81c1fcce3834ee72b7d1b9f76aa9354c (diff) | |
| parent | 3e9f12d12d7dbdd2cee39425e81b5fdf66fcfbc8 (diff) | |
| download | forums-bd12504f6cf03b36821a5cea2bf77a419496dcdb.tar forums-bd12504f6cf03b36821a5cea2bf77a419496dcdb.tar.gz forums-bd12504f6cf03b36821a5cea2bf77a419496dcdb.tar.bz2 forums-bd12504f6cf03b36821a5cea2bf77a419496dcdb.tar.xz forums-bd12504f6cf03b36821a5cea2bf77a419496dcdb.zip | |
Merge branch '3.2.x' into ticket/15068
Diffstat (limited to 'phpBB/phpbb/debug/debug.php')
| -rw-r--r-- | phpBB/phpbb/debug/debug.php | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/phpBB/phpbb/debug/debug.php b/phpBB/phpbb/debug/debug.php new file mode 100644 index 0000000000..c5ffada2e5 --- /dev/null +++ b/phpBB/phpbb/debug/debug.php @@ -0,0 +1,80 @@ +<?php +/** +* +* This file is part of the phpBB Forum Software package. +* +* @copyright (c) phpBB Limited <https://www.phpbb.com> +* @license GNU General Public License, version 2 (GPL-2.0) +* +* For full copyright and license information, please see +* the docs/CREDITS.txt file. +* +*/ + +namespace phpbb\debug; + +use Symfony\Component\Debug\BufferingLogger; +use Symfony\Component\Debug\DebugClassLoader; +use Symfony\Component\Debug\ExceptionHandler; + +/** + * Registers all the debug tools. + + * @see Symfony\Component\Debug\Debug + */ +class debug +{ + private static $enabled = false; + + /** + * Enables the debug tools. + * + * This method registers an error handler and an exception handler. + * + * If the Symfony ClassLoader component is available, a special + * class loader is also registered. + * + * @param int $errorReportingLevel The level of error reporting you want + * @param bool $displayErrors Whether to display errors (for development) or just log them (for production) + */ + public static function enable($errorReportingLevel = null, $displayErrors = true) + { + if (static::$enabled) + { + return; + } + + static::$enabled = true; + + if ($errorReportingLevel !== null) + { + error_reporting($errorReportingLevel); + } + else + { + error_reporting(-1); + } + + if ('cli' !== php_sapi_name()) + { + ini_set('display_errors', 0); + ExceptionHandler::register(); + } + else if ($displayErrors && (!ini_get('log_errors') || ini_get('error_log'))) + { + // CLI - display errors only if they're not already logged to STDERR + ini_set('display_errors', 1); + } + + if ($displayErrors) + { + error_handler::register(new error_handler(new BufferingLogger())); + } + else + { + error_handler::register()->throwAt(0, true); + } + + DebugClassLoader::enable(); + } +} |
