class LoggedStorage implements SessionStorageInterface, LoggerAwareInterface (View source)

Traits

Trait LoggerAwareTrait A trait used with LoggerAwareInterface

LoggerAwareTrait

Properties

protected SessionStorageInterface $wrappedStorage

The storage instance we're wrapping / adding logging to

Methods

getLoggerChannel()

Declare our logging channel as "Security"

__construct(SessionStorageInterface $wrappedStorage)

No description

log($level, $message, array $context = [])

Log details if possible

logInfo($message, array $context = [])

Add info level logs

logDebug($message, array $context = [])

Add debug level logs

bool
start()

Starts the session.

bool
isStarted()

Checks if the session is started.

string
getId()

Returns the session ID.

setId(string $id)

Sets the session ID.

mixed
getName()

Returns the session name.

setName(string $name)

Sets the session name.

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

Regenerates id that represents this storage.

save()

Force the session to be saved and closed.

clear()

Clear all session data in memory.

SessionBagInterface
getBag(string $name)

Gets a SessionBagInterface by name.

registerBag(SessionBagInterface $bag)

Registers a SessionBagInterface for use.

MetadataBag
getMetadataBag()

No description

Details

getLoggerChannel()

Declare our logging channel as "Security"

__construct(SessionStorageInterface $wrappedStorage)

No description

Parameters

SessionStorageInterface $wrappedStorage

protected log($level, $message, array $context = [])

Log details if possible

Parameters

$level
$message
array $context

protected logInfo($message, array $context = [])

Add info level logs

Parameters

$message
array $context

protected logDebug($message, array $context = [])

Add debug level logs

Parameters

$message
array $context

bool start()

Starts the session.

Return Value

bool

True if started

Exceptions

RuntimeException

bool isStarted()

Checks if the session is started.

Return Value

bool

True if started, false otherwise

string getId()

Returns the session ID.

Return Value

string

The session ID or empty

setId(string $id)

Sets the session ID.

Parameters

string $id

mixed getName()

Returns the session name.

Return Value

mixed

The session name

setName(string $name)

Sets the session name.

Parameters

string $name

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

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

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

Exceptions

RuntimeException

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.

Exceptions

RuntimeException

clear()

Clear all session data in memory.

SessionBagInterface getBag(string $name)

Gets a SessionBagInterface by name.

Parameters

string $name

Return Value

SessionBagInterface

Exceptions

InvalidArgumentException

registerBag(SessionBagInterface $bag)

Registers a SessionBagInterface for use.

Parameters

SessionBagInterface $bag

MetadataBag getMetadataBag()

No description

Return Value

MetadataBag