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\SessionCode
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;
}