class SessionUtils
Session utility functions.
@author Nicolas Grekas <p@tchwork.com> @author Rémon van de Kamp <rpkamp@gmail.com>
@internal
Hierarchy
- class \Symfony\Component\HttpFoundation\Session\SessionUtils
Expanded class hierarchy of SessionUtils
2 files declare their use of SessionUtils
- AbstractSessionHandler.php in vendor/
symfony/ http-foundation/ Session/ Storage/ Handler/ AbstractSessionHandler.php - AbstractSessionListener.php in vendor/
symfony/ http-kernel/ EventListener/ AbstractSessionListener.php
File
-
vendor/
symfony/ http-foundation/ Session/ SessionUtils.php, line 22
Namespace
Symfony\Component\HttpFoundation\SessionView source
final class SessionUtils {
/**
* Finds the session header amongst the headers that are to be sent, removes it, and returns
* it so the caller can process it further.
*/
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;
}
}
Members
Title Sort descending | Modifiers | Object type | Summary |
---|---|---|---|
SessionUtils::popSessionCookie | public static | function | Finds the session header amongst the headers that are to be sent, removes it, and returns it so the caller can process it further. |