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

Breadcrumb

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

function SessionUtils::popSessionCookie

Finds the session header amongst the headers that are to be sent, removes it, and returns it so the caller can process it further.

2 calls to SessionUtils::popSessionCookie()
AbstractSessionHandler::destroy in vendor/symfony/http-foundation/Session/Storage/Handler/AbstractSessionHandler.php
AbstractSessionListener::onKernelResponse in vendor/symfony/http-kernel/EventListener/AbstractSessionListener.php
@internal

File

vendor/symfony/http-foundation/Session/SessionUtils.php, line 28

Class

SessionUtils
Session utility functions.

Namespace

Symfony\Component\HttpFoundation\Session

Code

public static function popSessionCookie(string $sessionName, string $sessionId) : ?string {
    $sessionCookie = null;
    $sessionCookiePrefix = \sprintf(' %s=', urlencode($sessionName));
    $sessionCookieWithId = \sprintf('%s%s;', $sessionCookiePrefix, urlencode($sessionId));
    $otherCookies = [];
    foreach (headers_list() as $h) {
        if (0 !== stripos($h, 'Set-Cookie:')) {
            continue;
        }
        if (11 === strpos($h, $sessionCookiePrefix, 11)) {
            $sessionCookie = $h;
            if (11 !== strpos($h, $sessionCookieWithId, 11)) {
                $otherCookies[] = $h;
            }
        }
        else {
            $otherCookies[] = $h;
        }
    }
    if (null === $sessionCookie) {
        return null;
    }
    header_remove('Set-Cookie');
    foreach ($otherCookies as $h) {
        header($h, false);
    }
    return $sessionCookie;
}

API Navigation

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