public function onPhpError()

in agent/php/ElasticApm/Impl/Tracer.php [290:336]


    public function onPhpError(PhpErrorData $phpErrorData, ?Throwable $relatedThrowable, int $numberOfStackFramesToSkip): void
    {
        ($loggerProxy = $this->logger->ifDebugLevelEnabled(__LINE__, __FUNCTION__))
        && $loggerProxy->log(
            'Entered',
            [
                'phpErrorData'     => $phpErrorData,
                'relatedThrowable' => $relatedThrowable,
            ]
        );

        if ((error_reporting() & $phpErrorData->type) === 0) {
            ($loggerProxy = $this->logger->ifDebugLevelEnabled(__LINE__, __FUNCTION__))
            && $loggerProxy->log(
                'Not creating error event because error_reporting() does not include its type',
                ['type' => $phpErrorData->type, 'error_reporting()' => error_reporting()]
            );
            return;
        }
        ($loggerProxy = $this->logger->ifDebugLevelEnabled(__LINE__, __FUNCTION__))
        && $loggerProxy->log(
            'Creating error event because error_reporting() includes its type...',
            ['type' => $phpErrorData->type, 'error_reporting()' => error_reporting()]
        );

        $customErrorData = new CustomErrorData();
        $customErrorData->code = $phpErrorData->type;
        if (
            ($phpErrorData->message === null)
            || ($phpErrorData->fileName === null)
            || TextUtil::contains($phpErrorData->message, $phpErrorData->fileName)
        ) {
            $customErrorData->message = $phpErrorData->message;
        } else {
            $messageSuffix = ' in ' . $phpErrorData->fileName;
            if ($phpErrorData->lineNumber !== null) {
                $messageSuffix .= ':' . $phpErrorData->lineNumber;
            }
            $customErrorData->message = $phpErrorData->message . $messageSuffix;
        }

        if ($phpErrorData->type !== null) {
            $customErrorData->type = PhpErrorUtil::getTypeName($phpErrorData->type);
        }

        $this->createError($customErrorData, $phpErrorData, $relatedThrowable, $numberOfStackFramesToSkip + 1);
    }