\Symfony\Component\HttpFoundation\Session\StoragePhpBridgeSessionStorage

Allows session to be started by PHP and managed by Symfony.

Summary

Methods
Properties
Constants
__construct()
getSaveHandler()
start()
getId()
setId()
getName()
setName()
regenerate()
save()
clear()
registerBag()
getBag()
setMetadataBag()
getMetadataBag()
isStarted()
setOptions()
setSaveHandler()
No public properties found
No constants found
loadSession()
$bags
$started
$closed
$saveHandler
$metadataBag
N/A
No private methods found
No private properties found
N/A

Properties

$started

$started : boolean

Type

boolean

$closed

$closed : boolean

Type

boolean

Methods

__construct()

__construct(\SessionHandlerInterface|null  $handler = null, \Symfony\Component\HttpFoundation\Session\Storage\MetadataBag  $metaBag = null) 

Depending on how you want the storage driver to behave you probably want to override this constructor entirely.

List of options for $options array with their defaults.

Parameters

\SessionHandlerInterface|null $handler
\Symfony\Component\HttpFoundation\Session\Storage\MetadataBag $metaBag

MetadataBag

start()

start() : boolean

Starts the session.

Returns

boolean —

True if started

getId()

getId() : string

Returns the session ID.

Returns

string —

The session ID or empty

setId()

setId(string  $id) 

Sets the session ID.

Parameters

string $id

getName()

getName() : mixed

Returns the session name.

Returns

mixed —

The session name

setName()

setName(string  $name) 

Sets the session name.

Parameters

string $name

regenerate()

regenerate(boolean  $destroy = false, integer  $lifetime = null) : boolean

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/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. 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

boolean $destroy

Destroy session when regenerating?

integer $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.

Returns

boolean —

True if session regenerated, false if error

save()

save() 

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.

clear()

clear() 

Clear all session data in memory.

isStarted()

isStarted() : boolean

Checks if the session is started.

Returns

boolean —

True if started, false otherwise

setOptions()

setOptions(array  $options) 

Sets session.* ini variables.

For convenience we omit 'session.' from the beginning of the keys. Explicitly ignores other ini keys.

Parameters

array $options

Session ini directives array(key => value)

setSaveHandler()

setSaveHandler(\SessionHandlerInterface|null  $saveHandler = null) 

Registers session save handler as a PHP session handler.

To use internal PHP session save handlers, override this method using ini_set with session.save_handler and session.save_path e.g.

ini_set('session.save_handler', 'files');
ini_set('session.save_path', '/tmp');

or pass in a \SessionHandler instance which configures session.save_handler in the constructor, for a template see NativeFileSessionHandler or use handlers in composer package drak/native-session

Parameters

\SessionHandlerInterface|null $saveHandler

Throws

\InvalidArgumentException

loadSession()

loadSession(array  $session = null) 

Load the session with attributes.

After starting the session, PHP retrieves the session from whatever handlers are set to (either PHP's internal, or a custom save handler set with session_set_save_handler()). PHP takes the return value from the read() handler, unserializes it and populates $_SESSION with the result automatically.

Parameters

array $session