Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
CRAP | |
0.00% |
0 / 33 |
debug | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
72 | |
0.00% |
0 / 33 |
enable | |
0.00% |
0 / 1 |
72 | |
0.00% |
0 / 33 |
<?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(); | |
} | |
} |