$bags
$bags : array<mixed,\Symfony\Component\HttpFoundation\Session\SessionBagInterface>
Array of SessionBagInterface.
Allows session to be started by PHP and managed by Symfony.
$bags : array<mixed,\Symfony\Component\HttpFoundation\Session\SessionBagInterface>
Array of SessionBagInterface.
$saveHandler : \Symfony\Component\HttpFoundation\Session\Storage\Proxy\AbstractProxy
$metadataBag : \Symfony\Component\HttpFoundation\Session\Storage\MetadataBag
__construct(\Symfony\Component\HttpFoundation\Session\Storage\Proxy\AbstractProxy|\Symfony\Component\HttpFoundation\Session\Storage\Handler\NativeSessionHandler|\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.
\Symfony\Component\HttpFoundation\Session\Storage\Proxy\AbstractProxy|\Symfony\Component\HttpFoundation\Session\Storage\Handler\NativeSessionHandler|\SessionHandlerInterface|null | $handler | |
\Symfony\Component\HttpFoundation\Session\Storage\MetadataBag | $metaBag | MetadataBag |
getSaveHandler() : \Symfony\Component\HttpFoundation\Session\Storage\Proxy\AbstractProxy
Gets the save handler instance.
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.
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. |
True if session regenerated, false if error
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.
registerBag(\Symfony\Component\HttpFoundation\Session\SessionBagInterface $bag)
Registers a SessionBagInterface for use.
\Symfony\Component\HttpFoundation\Session\SessionBagInterface | $bag |
getBag(string $name) : \Symfony\Component\HttpFoundation\Session\SessionBagInterface
Gets a SessionBagInterface by name.
string | $name |
setMetadataBag(\Symfony\Component\HttpFoundation\Session\Storage\MetadataBag $metaBag = null)
\Symfony\Component\HttpFoundation\Session\Storage\MetadataBag | $metaBag |
getMetadataBag() : \Symfony\Component\HttpFoundation\Session\Storage\MetadataBag
Gets the MetadataBag.
setSaveHandler(\Symfony\Component\HttpFoundation\Session\Storage\Proxy\AbstractProxy|\Symfony\Component\HttpFoundation\Session\Storage\Handler\NativeSessionHandler|\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 NativeSessionHandler instance which configures session.save_handler in the constructor, for a template see NativeFileSessionHandler or use handlers in composer package drak/native-session
\Symfony\Component\HttpFoundation\Session\Storage\Proxy\AbstractProxy|\Symfony\Component\HttpFoundation\Session\Storage\Handler\NativeSessionHandler|\SessionHandlerInterface|null | $saveHandler |
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.
array | $session |