public function MockArraySessionStorage::regenerate in Zircon Profile 8
Same name and namespace in other branches
- 8.0 vendor/symfony/http-foundation/Session/Storage/MockArraySessionStorage.php \Symfony\Component\HttpFoundation\Session\Storage\MockArraySessionStorage::regenerate()
Regenerates id that represents this storage.
This method must invoke session_regenerate_id($destroy) unless this interface is used for a storage object designed for unit or functional testing where a real PHP session would interfere with testing.
Note regenerate+destroy should not clear the session data in memory only delete the session data from persistent storage.
Care: When regenerating the session ID no locking is involved in PHPs session design. See https://bugs.php.net/bug.php?id=61470 for a discussion. So you must make sure the regenerated session is saved BEFORE sending the headers with the new ID. Symfonys HttpKernel offers a listener for this. See Symfony\Component\HttpKernel\EventListener\SaveSessionListener. Otherwise session data could get lost again for concurrent requests with the new ID. One result could be that you get logged out after just logging in.
Parameters
bool $destroy Destroy session when regenerating?:
int $lifetime Sets the cookie lifetime for the session cookie. A null value: will leave the system settings unchanged, 0 sets the cookie to expire with browser session. Time is in seconds, and is not a Unix timestamp.
Return value
bool True if session regenerated, false if error
Throws
\RuntimeException If an error occurs while regenerating this storage
Overrides SessionStorageInterface::regenerate
1 call to MockArraySessionStorage::regenerate()
- MockFileSessionStorage::regenerate in vendor/
symfony/ http-foundation/ Session/ Storage/ MockFileSessionStorage.php - Regenerates id that represents this storage.
1 method overrides MockArraySessionStorage::regenerate()
- MockFileSessionStorage::regenerate in vendor/
symfony/ http-foundation/ Session/ Storage/ MockFileSessionStorage.php - Regenerates id that represents this storage.
File
- vendor/
symfony/ http-foundation/ Session/ Storage/ MockArraySessionStorage.php, line 108
Class
- MockArraySessionStorage
- MockArraySessionStorage mocks the session for unit tests.
Namespace
Symfony\Component\HttpFoundation\Session\StorageCode
public function regenerate($destroy = false, $lifetime = null) {
if (!$this->started) {
$this
->start();
}
$this->metadataBag
->stampNew($lifetime);
$this->id = $this
->generateId();
return true;
}