Storage\MockFileSessionStorage (Component\HttpFoundation\Session)
Symfony\Component\HttpFoundation\Session\Storage\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
__construct(string $savePath = null, string $name = 'MOCKSESSID', MetadataBag $metaBag = null) Constructor. | ||
setSessionData(array $array) Sets the session data. | from MockArraySessionStorage | |
bool | start() Starts the session. | |
bool | regenerate(bool $destroy = false, int $lifetime = null) Regenerates id that represents this storage. | |
string | getId() Returns the session ID. | from MockArraySessionStorage |
setId(string $id) Sets the session ID. | from MockArraySessionStorage | |
mixed | getName() Returns the session name. | from MockArraySessionStorage |
setName(string $name) Sets the session name. | from MockArraySessionStorage | |
save() Force the session to be saved and closed. | ||
clear() Clear all session data in memory. | from MockArraySessionStorage | |
registerBag(SessionBagInterface $bag) Registers a SessionBagInterface for use. | from MockArraySessionStorage | |
SessionBagInterface | getBag(string $name) Gets a SessionBagInterface by name. | from MockArraySessionStorage |
bool | isStarted() Checks if the session is started. | from MockArraySessionStorage |
setMetadataBag(MetadataBag $bag = null) Sets the MetadataBag. | from MockArraySessionStorage | |
MetadataBag | getMetadataBag() Gets the MetadataBag. | from MockArraySessionStorage |
Details
public __construct(string $savePath = null, string $name = 'MOCKSESSID', MetadataBag $metaBag = null)
Constructor.
public setSessionData(array $array)
Sets the session data.
public bool start()
Starts the session.
public 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 PHPs 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. Symfonys 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.
public string getId()
Returns the session ID.
public setId(string $id)
Sets the session ID.
public mixed getName()
Returns the session name.
public setName(string $name)
Sets the session name.
public 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 it should actually persist the session data if required.
public clear()
Clear all session data in memory.
public registerBag(SessionBagInterface $bag)
Registers a SessionBagInterface for use.
public SessionBagInterface getBag(string $name)
Gets a SessionBagInterface by name.
public bool isStarted()
Checks if the session is started.
public setMetadataBag(MetadataBag $bag = null)
Sets the MetadataBag.
public MetadataBag getMetadataBag()
Gets the MetadataBag.
© 2004–2016 Fabien Potencier
Licensed under the MIT License.
http://api.symfony.com/3.0/Symfony/Component/HttpFoundation/Session/Storage/MockFileSessionStorage.html