\Symfony\Component\HttpFoundation\Session\StorageMockFileSessionStorage

MockFileSessionStorage is used to mock sessions for functional testing when done in a single PHP process.

No PHP session is actually started since a session can be initialized and shutdown only once per PHP execution cycle and this class does not pollute any session related globals, including session_() functions or session. PHP ini directives.

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
destroy()
getFilePath()
read()
$savePath
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

$savePath

$savePath : 

Type

Methods

__construct()

__construct(string  $savePath = null, string  $name = 'MOCKSESSID', \Symfony\Component\HttpFoundation\Session\Storage\MetadataBag  $metaBag = null) 

Parameters

string $savePath

Path of directory to save session files

string $name

Session name

\Symfony\Component\HttpFoundation\Session\Storage\MetadataBag $metaBag

MetadataBag instance

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() 

destroy()

destroy() 

Deletes a session from persistent storage.

Deliberately leaves session data in memory intact.

getFilePath()

getFilePath() : string

Calculate path to file.

Returns

string —

File path

read()

read() 

Reads session from storage and loads session.