\Symfony\Component\HttpFoundation\Session\StorageSessionStorageInterface

StorageInterface.

Summary

Methods
Constants
start()
isStarted()
getId()
setId()
getName()
setName()
regenerate()
save()
clear()
getBag()
registerBag()
getMetadataBag()
No constants found
No protected methods found
N/A
No private methods found
N/A

Methods

start()

start() : bool

Starts the session.

Throws

\RuntimeException

if something goes wrong starting the session

Returns

bool —

isStarted()

isStarted() : bool

Checks if the session is started.

Returns

bool —

getId()

getId() : string

Returns the session ID.

Returns

string —

setId()

setId(string  $id) : mixed

Sets the session ID.

Parameters

string $id

Returns

mixed —

getName()

getName() : string

Returns the session name.

Returns

string —

setName()

setName(string  $name) : mixed

Sets the session name.

Parameters

string $name

Returns

mixed —

regenerate()

regenerate(bool  $destroy = false, int|null  $lifetime = null) : bool

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 PHP's session design. See https://bugs.php.net/61470 for a discussion. So you must make sure the regenerated session is saved BEFORE sending the headers with the new ID. Symfony's 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|null $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.

Throws

\RuntimeException

If an error occurs while regenerating this storage

Returns

bool —

save()

save() : mixed

Force the session to be saved and closed.

This method must invoke session_write_close() unless this interface is used for a storage object design for unit or functional testing where a real PHP session would interfere with testing, in which case it should actually persist the session data if required.

Throws

\RuntimeException

if the session is saved without being started, or if the session is already closed

Returns

mixed —

clear()

clear() : mixed

Clear all session data in memory.

Returns

mixed —

getBag()

getBag(string  $name) : \Symfony\Component\HttpFoundation\Session\SessionBagInterface

Gets a SessionBagInterface by name.

Parameters

string $name

Throws

\InvalidArgumentException

If the bag does not exist

Returns

\Symfony\Component\HttpFoundation\Session\SessionBagInterface —

registerBag()

registerBag(\Symfony\Component\HttpFoundation\Session\SessionBagInterface  $bag) : mixed

Registers a SessionBagInterface for use.

Parameters

\Symfony\Component\HttpFoundation\Session\SessionBagInterface $bag

Returns

mixed —

getMetadataBag()

getMetadataBag() : \Symfony\Component\HttpFoundation\Session\Storage\MetadataBag

Returns

\Symfony\Component\HttpFoundation\Session\Storage\MetadataBag —