You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
1.8 KiB
63 lines
1.8 KiB
<?php |
|
|
|
/* |
|
* This file is part of the Symfony package. |
|
* |
|
* (c) Fabien Potencier <fabien@symfony.com> |
|
* |
|
* For the full copyright and license information, please view the LICENSE |
|
* file that was distributed with this source code. |
|
*/ |
|
|
|
namespace Symfony\Component\Debug; |
|
|
|
/** |
|
* Registers all the debug tools. |
|
* |
|
* @author Fabien Potencier <fabien@symfony.com> |
|
*/ |
|
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 = E_ALL, $displayErrors = true) |
|
{ |
|
if (static::$enabled) { |
|
return; |
|
} |
|
|
|
static::$enabled = true; |
|
|
|
if (null !== $errorReportingLevel) { |
|
error_reporting($errorReportingLevel); |
|
} else { |
|
error_reporting(E_ALL); |
|
} |
|
|
|
if ('cli' !== PHP_SAPI) { |
|
ini_set('display_errors', 0); |
|
ExceptionHandler::register(); |
|
} elseif ($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) { |
|
ErrorHandler::register(new ErrorHandler(new BufferingLogger())); |
|
} else { |
|
ErrorHandler::register()->throwAt(0, true); |
|
} |
|
|
|
DebugClassLoader::enable(); |
|
} |
|
}
|
|
|