Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. ErrorHandler.php

function ErrorHandler::__invoke

Throws

NoTestCaseObjectOnCallStackException

File

vendor/phpunit/phpunit/src/Runner/ErrorHandler.php, line 59

Class

ErrorHandler
@no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit

Namespace

PHPUnit\Runner

Code

public function __invoke(int $errorNumber, string $errorString, string $errorFile, int $errorLine) : bool {
    $suppressed = (error_reporting() & ~self::INSUPPRESSIBLE_LEVELS) === 0;
    if ($suppressed && (new ExcludeList())->isExcluded($errorFile)) {
        return false;
    }
    
    /**
     * E_STRICT is deprecated since PHP 8.4.
     *
     * @see https://github.com/sebastianbergmann/phpunit/issues/5956
     */
    if (defined('E_STRICT') && $errorNumber === @E_STRICT) {
        $errorNumber = E_NOTICE;
    }
    $test = Event\Code\TestMethodBuilder::fromCallStack();
    $ignoredByBaseline = $this->ignoredByBaseline($errorFile, $errorLine, $errorString);
    $ignoredByTest = $test->metadata()
        ->isIgnoreDeprecations()
        ->isNotEmpty();
    switch ($errorNumber) {
        case E_NOTICE:
            Event\Facade::emitter()->testTriggeredPhpNotice($test, $errorString, $errorFile, $errorLine, $suppressed, $ignoredByBaseline);
            break;
        case E_USER_NOTICE:
            Event\Facade::emitter()->testTriggeredNotice($test, $errorString, $errorFile, $errorLine, $suppressed, $ignoredByBaseline);
            break;
        case E_WARNING:
            Event\Facade::emitter()->testTriggeredPhpWarning($test, $errorString, $errorFile, $errorLine, $suppressed, $ignoredByBaseline);
            break;
        case E_USER_WARNING:
            Event\Facade::emitter()->testTriggeredWarning($test, $errorString, $errorFile, $errorLine, $suppressed, $ignoredByBaseline);
            break;
        case E_DEPRECATED:
            Event\Facade::emitter()->testTriggeredPhpDeprecation($test, $errorString, $errorFile, $errorLine, $suppressed, $ignoredByBaseline, $ignoredByTest);
            break;
        case E_USER_DEPRECATED:
            Event\Facade::emitter()->testTriggeredDeprecation($test, $errorString, $errorFile, $errorLine, $suppressed, $ignoredByBaseline, $ignoredByTest);
            break;
        case E_USER_ERROR:
            Event\Facade::emitter()->testTriggeredError($test, $errorString, $errorFile, $errorLine, $suppressed);
            throw new ErrorException('E_USER_ERROR was triggered');
        default:
            return false;
    }
    return false;
}
RSS feed
Powered by Drupal