MockFileSessionStorage
class MockFileSessionStorage extends MockArraySessionStorage
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.
Methods
No description
Starts the session.
Regenerates id that represents this storage.
Force the session to be saved and closed.
Gets a SessionBagInterface by name.
Details
at line line 34
__construct(string $savePath = null, string $name = 'MOCKSESSID', MetadataBag $metaBag = null)
in MockArraySessionStorage at line line 71
setSessionData(array $array)
at line line 52
bool
start()
Starts the session.
at line line 72
bool
regenerate(bool $destroy = false, int $lifetime = null)
Regenerates id that represents this storage.
This method must invoke sessionregenerateid($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.
in MockArraySessionStorage at line line 112
string
getId()
Returns the session ID.
in MockArraySessionStorage at line line 120
setId(string $id)
Sets the session ID.
in MockArraySessionStorage at line line 132
mixed
getName()
Returns the session name.
in MockArraySessionStorage at line line 140
setName(string $name)
Sets the session name.
at line line 88
save()
Force the session to be saved and closed.
This method must invoke sessionwriteclose() 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.
in MockArraySessionStorage at line line 161
clear()
Clear all session data in memory.
in MockArraySessionStorage at line line 178
registerBag(SessionBagInterface $bag)
Registers a SessionBagInterface for use.
in MockArraySessionStorage at line line 186
SessionBagInterface
getBag(string $name)
Gets a SessionBagInterface by name.
in MockArraySessionStorage at line line 202
bool
isStarted()
Checks if the session is started.
in MockArraySessionStorage at line line 207
setMetadataBag(MetadataBag $bag = null)
in MockArraySessionStorage at line line 221
MetadataBag
getMetadataBag()
Gets the MetadataBag.