Issue #3173888 by andypost, alexpott, Gábor Hojtsy: Error handler signature changed in PHP 8

merge-requests/25/head
catch 2020-09-30 09:45:46 +01:00
parent a5665ea228
commit e9969b0f35
4 changed files with 7 additions and 13 deletions

View File

@ -299,13 +299,10 @@ function watchdog_exception($type, Exception $exception, $message = NULL, $varia
* (optional) The filename that the error was raised in.
* @param $line
* (optional) The line number the error was raised at.
* @param $context
* (optional) An array that points to the active symbol table at the point the
* error occurred.
*/
function _drupal_error_handler($error_level, $message, $filename = NULL, $line = NULL, $context = NULL) {
function _drupal_error_handler($error_level, $message, $filename = NULL, $line = NULL) {
require_once __DIR__ . '/errors.inc';
_drupal_error_handler_real($error_level, $message, $filename, $line, $context);
_drupal_error_handler_real($error_level, $message, $filename, $line);
}
/**

View File

@ -54,11 +54,8 @@ function drupal_error_levels() {
* The filename that the error was raised in.
* @param $line
* The line number the error was raised at.
* @param $context
* An array that points to the active symbol table at the point the error
* occurred.
*/
function _drupal_error_handler_real($error_level, $message, $filename, $line, $context) {
function _drupal_error_handler_real($error_level, $message, $filename, $line) {
if ($error_level & error_reporting()) {
$types = drupal_error_levels();
list($severity_msg, $severity_level) = $types[$error_level];

View File

@ -67,14 +67,14 @@ class QueryTest extends DatabaseTestBase {
public function testConditionOperatorArgumentsSQLInjection() {
$injection = "IS NOT NULL) ;INSERT INTO {test} (name) VALUES ('test12345678'); -- ";
$previous_error_handler = set_error_handler(function ($severity, $message, $filename, $lineno, $context) use (&$previous_error_handler) {
$previous_error_handler = set_error_handler(function ($severity, $message, $filename, $lineno) use (&$previous_error_handler) {
// Normalize the filename to use UNIX directory separators.
if (preg_match('@core/lib/Drupal/Core/Database/Query/Condition.php$@', str_replace(DIRECTORY_SEPARATOR, '/', $filename))) {
// Convert errors to exceptions for testing purposes below.
throw new \ErrorException($message, 0, $severity, $filename, $lineno);
}
if ($previous_error_handler) {
return $previous_error_handler($severity, $message, $filename, $lineno, $context);
return $previous_error_handler($severity, $message, $filename, $lineno);
}
});
try {

View File

@ -103,13 +103,13 @@ class LibraryDiscoveryTest extends UnitTestCase {
* Tests getting a deprecated library.
*/
public function testAssetLibraryDeprecation() {
$previous_error_handler = set_error_handler(function ($severity, $message, $file, $line, $context) use (&$previous_error_handler) {
$previous_error_handler = set_error_handler(function ($severity, $message, $file, $line) use (&$previous_error_handler) {
// Convert deprecation error into a catchable exception.
if ($severity === E_USER_DEPRECATED) {
throw new \ErrorException($message, 0, $severity, $file, $line);
}
if ($previous_error_handler) {
return $previous_error_handler($severity, $message, $file, $line, $context);
return $previous_error_handler($severity, $message, $file, $line);
}
});