minor #16916 [Debug] simplify error_reporting levels given php version > 5.3 (Tobion)

This PR was merged into the 3.0 branch.

Discussion
----------

[Debug] simplify error_reporting levels given php version > 5.3

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

Since PHP 5.4 `E_ALL` contains `E_STRICT`. This allows us to simplify and clean up some code.

Commits
-------

b1c774f simplify debug error_reporting levels given php version > 5.3
This commit is contained in:
Fabien Potencier 2015-12-18 17:22:11 +01:00
commit 1ccdf663e6
4 changed files with 11 additions and 13 deletions

View File

@ -31,7 +31,7 @@ class Debug
* @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)
public static function enable($errorReportingLevel = E_ALL, $displayErrors = true)
{
if (static::$enabled) {
return;
@ -42,7 +42,7 @@ class Debug
if (null !== $errorReportingLevel) {
error_reporting($errorReportingLevel);
} else {
error_reporting(-1);
error_reporting(E_ALL);
}
if ('cli' !== php_sapi_name()) {

View File

@ -113,8 +113,6 @@ class ErrorHandler
register_shutdown_function(__CLASS__.'::handleFatalError');
}
$levels = -1;
if ($handlerIsNew = null === $handler) {
$handler = new static();
}
@ -131,7 +129,7 @@ class ErrorHandler
restore_error_handler();
}
$handler->throwAt($levels & $handler->thrownErrors, true);
$handler->throwAt(E_ALL & $handler->thrownErrors, true);
return $handler;
}
@ -151,7 +149,7 @@ class ErrorHandler
* @param array|int $levels An array map of E_* to LogLevel::* or an integer bit field of E_* constants
* @param bool $replace Whether to replace or not any existing logger
*/
public function setDefaultLogger(LoggerInterface $logger, $levels = null, $replace = false)
public function setDefaultLogger(LoggerInterface $logger, $levels = E_ALL, $replace = false)
{
$loggers = array();
@ -163,7 +161,7 @@ class ErrorHandler
}
} else {
if (null === $levels) {
$levels = E_ALL | E_STRICT;
$levels = E_ALL;
}
foreach ($this->loggers as $type => $log) {
if (($type & $levels) && (empty($log[0]) || $replace || $log[0] === $this->bootstrappingLogger)) {
@ -255,7 +253,7 @@ class ErrorHandler
public function throwAt($levels, $replace = false)
{
$prev = $this->thrownErrors;
$this->thrownErrors = (E_ALL | E_STRICT) & ($levels | E_RECOVERABLE_ERROR | E_USER_ERROR) & ~E_USER_DEPRECATED & ~E_DEPRECATED;
$this->thrownErrors = E_ALL & ($levels | E_RECOVERABLE_ERROR | E_USER_ERROR) & ~E_USER_DEPRECATED & ~E_DEPRECATED;
if (!$replace) {
$this->thrownErrors |= $prev;
}

View File

@ -26,7 +26,7 @@ class DebugClassLoaderTest extends \PHPUnit_Framework_TestCase
protected function setUp()
{
$this->errorReporting = error_reporting(E_ALL | E_STRICT);
$this->errorReporting = error_reporting(E_ALL);
$this->loader = new ClassLoader();
spl_autoload_register(array($this->loader, 'loadClass'), true, true);
DebugClassLoader::enable();

View File

@ -45,12 +45,12 @@ class DebugHandlersListener implements EventSubscriberInterface
* @param bool $scream Enables/disables screaming mode, where even silenced errors are logged
* @param string $fileLinkFormat The format for links to source files
*/
public function __construct(callable $exceptionHandler = null, LoggerInterface $logger = null, $levels = null, $throwAt = -1, $scream = true, $fileLinkFormat = null)
public function __construct(callable $exceptionHandler = null, LoggerInterface $logger = null, $levels = E_ALL, $throwAt = E_ALL, $scream = true, $fileLinkFormat = null)
{
$this->exceptionHandler = $exceptionHandler;
$this->logger = $logger;
$this->levels = $levels;
$this->throwAt = is_numeric($throwAt) ? (int) $throwAt : (null === $throwAt ? null : ($throwAt ? -1 : null));
$this->levels = null === $levels ? E_ALL : $levels;
$this->throwAt = is_numeric($throwAt) ? (int) $throwAt : (null === $throwAt ? null : ($throwAt ? E_ALL : null));
$this->scream = (bool) $scream;
$this->fileLinkFormat = $fileLinkFormat ?: ini_get('xdebug.file_link_format') ?: get_cfg_var('xdebug.file_link_format');
}
@ -79,7 +79,7 @@ class DebugHandlersListener implements EventSubscriberInterface
$scream |= $type;
}
} else {
$scream = null === $this->levels ? E_ALL | E_STRICT : $this->levels;
$scream = $this->levels;
}
if ($this->scream) {
$handler->screamAt($scream);