\Symfony\Component\HttpFoundation\Session\StorageMockArraySessionStorage

MockArraySessionStorage mocks the session for unit tests.

No PHP session is actually started since a session can be initialized and shutdown only once per PHP execution cycle.

When doing functional testing, you should use MockFileSessionStorage instead.

Summary

Methods
Properties
Constants
__construct()
setSessionData()
start()
regenerate()
getId()
setId()
getName()
setName()
save()
clear()
registerBag()
getBag()
isStarted()
setMetadataBag()
getMetadataBag()
No public properties found
No constants found
generateId()
loadSession()
$id
$name
$started
$closed
$data
$metadataBag
$bags
N/A
No private methods found
No private properties found
N/A

Properties

$id

$id : string

Type

string

$name

$name : string

Type

string

$started

$started : boolean

Type

boolean

$closed

$closed : boolean

Type

boolean

$data

$data : array

Type

array

Methods

setSessionData()

setSessionData(array  $array) 

Parameters

array $array

start()

start() : boolean

Starts the session.

Returns

boolean —

True if started

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

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

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

generateId()

generateId() : string

Generates a session ID.

This doesn't need to be particularly cryptographically secure since this is just a mock.

Returns

string

loadSession()

loadSession()