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

Breadcrumb

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

function RequestDataCollector::collectSessionUsage

File

vendor/symfony/http-kernel/DataCollector/RequestDataCollector.php, line 398

Class

RequestDataCollector
@author Fabien Potencier <fabien@symfony.com>

Namespace

Symfony\Component\HttpKernel\DataCollector

Code

public function collectSessionUsage() : void {
    $trace = debug_backtrace(\DEBUG_BACKTRACE_IGNORE_ARGS);
    $traceEndIndex = \count($trace) - 1;
    for ($i = $traceEndIndex; $i > 0; --$i) {
        if (null !== ($class = $trace[$i]['class'] ?? null) && (is_subclass_of($class, SessionInterface::class) || is_subclass_of($class, SessionBagInterface::class))) {
            $traceEndIndex = $i;
            break;
        }
    }
    if (\count($trace) - 1 === $traceEndIndex) {
        return;
    }
    // Remove part of the backtrace that belongs to session only
    array_splice($trace, 0, $traceEndIndex);
    // Merge identical backtraces generated by internal call reports
    $name = \sprintf('%s:%s', $trace[1]['class'] ?? $trace[0]['file'], $trace[0]['line']);
    if (!\array_key_exists($name, $this->sessionUsages)) {
        $this->sessionUsages[$name] = [
            'name' => $name,
            'file' => $trace[0]['file'],
            'line' => $trace[0]['line'],
            'trace' => $trace,
        ];
    }
}

API Navigation

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