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

Breadcrumb

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

function FlattenException::flattenArgs

1 call to FlattenException::flattenArgs()
FlattenException::setTrace in vendor/symfony/error-handler/Exception/FlattenException.php

File

vendor/symfony/error-handler/Exception/FlattenException.php, line 356

Class

FlattenException
FlattenException wraps a PHP Error or Exception to be able to serialize it.

Namespace

Symfony\Component\ErrorHandler\Exception

Code

private function flattenArgs(array $args, int $level = 0, int &$count = 0) : array {
    $result = [];
    foreach ($args as $key => $value) {
        if (++$count > 10000.0) {
            return [
                'array',
                '*SKIPPED over 10000 entries*',
            ];
        }
        if ($value instanceof \__PHP_Incomplete_Class) {
            $result[$key] = [
                'incomplete-object',
                $this->getClassNameFromIncomplete($value),
            ];
        }
        elseif (\is_object($value)) {
            $result[$key] = [
                'object',
                get_debug_type($value),
            ];
        }
        elseif (\is_array($value)) {
            if ($level > 10) {
                $result[$key] = [
                    'array',
                    '*DEEP NESTED ARRAY*',
                ];
            }
            else {
                $result[$key] = [
                    'array',
                    $this->flattenArgs($value, $level + 1, $count),
                ];
            }
        }
        elseif (null === $value) {
            $result[$key] = [
                'null',
                null,
            ];
        }
        elseif (\is_bool($value)) {
            $result[$key] = [
                'boolean',
                $value,
            ];
        }
        elseif (\is_int($value)) {
            $result[$key] = [
                'integer',
                $value,
            ];
        }
        elseif (\is_float($value)) {
            $result[$key] = [
                'float',
                $value,
            ];
        }
        elseif (\is_resource($value)) {
            $result[$key] = [
                'resource',
                get_resource_type($value),
            ];
        }
        else {
            $result[$key] = [
                'string',
                (string) $value,
            ];
        }
    }
    return $result;
}

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal