MockSession
extends Session
in package
Class MockSession
Provides a safe way to test the Session class itself, that doesn't interact with the session or cookies at all.
Table of Contents
Properties
- $cookies : array<int, Cookie>
- Holds our "cookie" data.
- $didRegenerate : mixed
- $session_id : string
- $config : Session
- Session Config
- $cookie : Cookie
- The session cookie instance.
- $cookieDomain : string
- The domain name to use for cookies.
- $cookiePath : string
- Path used for storing cookies.
- $cookieSameSite : string
- Cookie SameSite setting as described in RFC6265 Must be 'None', 'Lax' or 'Strict'.
- $cookieSecure : bool
- Cookie will only be set if a secure HTTPS connection exists.
- $driver : SessionHandlerInterface
- Instance of the driver to use.
- $sessionCookieName : string
- The session cookie name, must contain only [0-9a-z_-] characters.
- $sessionDriverName : string
- The storage driver to use: files, database, redis, memcached
- $sessionExpiration : int
- The number of SECONDS you want the session to last.
- $sessionMatchIP : bool
- Whether to match the user's IP address when reading the session data.
- $sessionRegenerateDestroy : bool
- Whether to destroy session data associated with the old session ID when auto-regenerating the session ID. When set to FALSE, the data will be later deleted by the garbage collector.
- $sessionSavePath : string
- The location to save sessions to, driver dependent.
- $sessionTimeToUpdate : int
- How many seconds between CI regenerating the session ID.
- $sidRegexp : string
- sid regex expression
Methods
- __construct() : mixed
- Constructor.
- __get() : string|null
- Magic method to get session variables by simply calling $foo = $session->foo;
- __isset() : bool
- Magic method to check for session variables.
- __set() : mixed
- Magic method to set variables in the session by simply calling $session->foo = bar;
- close() : void
- Writes session data and close the current session.
- destroy() : mixed
- Destroys the current session.
- get() : array<string|int, mixed>|bool|float|int|object|string|null
- Get user data that has been set in the session.
- getFlashdata() : array<string|int, mixed>|null
- Retrieve one or more items of flash data from the session.
- getFlashKeys() : array<string|int, mixed>
- Retrieve all of the keys for session data marked as flashdata.
- getTempdata() : array<string|int, mixed>|bool|float|int|object|string|null
- Returns either a single piece of tempdata, or all temp data currently in the session.
- getTempKeys() : array<string|int, mixed>
- Retrieve the keys of all session data that have been marked as temporary data.
- has() : bool
- Returns whether an index exists in the session array.
- keepFlashdata() : mixed
- Keeps a single piece of flash data alive for one more request.
- markAsFlashdata() : bool
- Mark a session property or properties as flashdata.
- markAsTempdata() : bool
- Mark one of more pieces of data as being temporary, meaning that it has a set lifespan within the session.
- push() : mixed
- Push new value onto session value that is array.
- regenerate() : mixed
- Regenerates the session ID.
- remove() : mixed
- Remove one or more session properties.
- removeTempdata() : mixed
- Removes a single piece of temporary data from the session.
- set() : mixed
- Sets user data into the session.
- setFlashdata() : mixed
- Sets data into the session that will only last for a single request.
- setTempdata() : mixed
- Sets new data into the session, and marks it as temporary data with a set lifespan.
- start() : $this|void
- Initialize the session container and starts up the session.
- stop() : mixed
- Destroys the current session.
- unmarkFlashdata() : mixed
- Unmark data in the session as flashdata.
- unmarkTempdata() : mixed
- Unmarks temporary data in the session, effectively removing its lifespan and allowing it to live as long as the session does.
- configure() : mixed
- Configuration.
- configureSidLength() : mixed
- Configure session ID length
- initVars() : mixed
- Handle temporary variables
- setCookie() : mixed
- Takes care of setting the cookie on the client side.
- setSaveHandler() : mixed
- Sets the driver as the session handler in PHP.
- startSession() : mixed
- Starts the session.
- removeOldSessionCookie() : void
Properties
$cookies
Holds our "cookie" data.
public
array<int, Cookie>
$cookies
= []
$didRegenerate
public
mixed
$didRegenerate
= false
$session_id
public
string
$session_id
$config
Session Config
protected
Session
$config
$cookie
The session cookie instance.
protected
Cookie
$cookie
$cookieDomain
The domain name to use for cookies.
No longer used.
protected
string
$cookieDomain
= ''
Set to .your-domain.com for site-wide cookies.
$cookiePath
Path used for storing cookies.
No longer used.
protected
string
$cookiePath
= '/'
Typically will be a forward slash.
$cookieSameSite
Cookie SameSite setting as described in RFC6265 Must be 'None', 'Lax' or 'Strict'.
No longer used.
protected
string
$cookieSameSite
= \CodeIgniter\Cookie\Cookie::SAMESITE_LAX
$cookieSecure
Cookie will only be set if a secure HTTPS connection exists.
No longer used.
protected
bool
$cookieSecure
= false
$driver
Instance of the driver to use.
protected
SessionHandlerInterface
$driver
$sessionCookieName
The session cookie name, must contain only [0-9a-z_-] characters.
Use $this->config->cookieName.
protected
string
$sessionCookieName
= 'ci_session'
$sessionDriverName
The storage driver to use: files, database, redis, memcached
Use $this->config->driver.
protected
string
$sessionDriverName
$sessionExpiration
The number of SECONDS you want the session to last.
Use $this->config->expiration.
protected
int
$sessionExpiration
= 7200
Setting it to 0 (zero) means expire when the browser is closed.
$sessionMatchIP
Whether to match the user's IP address when reading the session data.
Use $this->config->matchIP.
protected
bool
$sessionMatchIP
= false
WARNING: If you're using the database driver, don't forget to update your session table's PRIMARY KEY when changing this setting.
$sessionRegenerateDestroy
Whether to destroy session data associated with the old session ID when auto-regenerating the session ID. When set to FALSE, the data will be later deleted by the garbage collector.
Use $this->config->regenerateDestroy.
protected
bool
$sessionRegenerateDestroy
= false
$sessionSavePath
The location to save sessions to, driver dependent.
Use $this->config->savePath.
protected
string
$sessionSavePath
For the 'files' driver, it's a path to a writable directory. WARNING: Only absolute paths are supported!
For the 'database' driver, it's a table name.
Tags
$sessionTimeToUpdate
How many seconds between CI regenerating the session ID.
Use $this->config->timeToUpdate.
protected
int
$sessionTimeToUpdate
= 300
$sidRegexp
sid regex expression
protected
string
$sidRegexp
Methods
__construct()
Constructor.
public
__construct(SessionHandlerInterface $driver, Session $config) : mixed
Extract configuration settings and save them here.
Parameters
- $driver : SessionHandlerInterface
- $config : Session
__get()
Magic method to get session variables by simply calling $foo = $session->foo;
public
__get(string $key) : string|null
Parameters
- $key : string
-
Identifier of the session property to remove.
Return values
string|null__isset()
Magic method to check for session variables.
public
__isset(string $key) : bool
Different from has() in that it will validate 'session_id' as well. Mostly used by internal PHP functions, users should stick to has()
Parameters
- $key : string
-
Identifier of the session property to remove.
Return values
bool__set()
Magic method to set variables in the session by simply calling $session->foo = bar;
public
__set(string $key, array<string|int, mixed>|string $value) : mixed
Parameters
- $key : string
-
Identifier of the session property to set.
- $value : array<string|int, mixed>|string
close()
Writes session data and close the current session.
public
close() : void
destroy()
Destroys the current session.
public
destroy() : mixed
get()
Get user data that has been set in the session.
public
get([non-empty-string|null $key = null ]) : array<string|int, mixed>|bool|float|int|object|string|null
If the property exists as "normal", returns it. Otherwise, returns an array of any temp or flash data values with the property key.
Replaces the legacy method $session->userdata();
Parameters
- $key : non-empty-string|null = null
-
Identifier of the session property to retrieve
Return values
array<string|int, mixed>|bool|float|int|object|string|null —The property value(s)
getFlashdata()
Retrieve one or more items of flash data from the session.
public
getFlashdata([string $key = null ]) : array<string|int, mixed>|null
If the item key is null, return all flashdata.
Parameters
- $key : string = null
-
Property identifier
Return values
array<string|int, mixed>|null —The requested property value, or an associative array of them
getFlashKeys()
Retrieve all of the keys for session data marked as flashdata.
public
getFlashKeys() : array<string|int, mixed>
Return values
array<string|int, mixed> —The property names of all flashdata
getTempdata()
Returns either a single piece of tempdata, or all temp data currently in the session.
public
getTempdata([string $key = null ]) : array<string|int, mixed>|bool|float|int|object|string|null
Parameters
- $key : string = null
-
Session data key
Return values
array<string|int, mixed>|bool|float|int|object|string|null —Session data value or null if not found.
getTempKeys()
Retrieve the keys of all session data that have been marked as temporary data.
public
getTempKeys() : array<string|int, mixed>
Return values
array<string|int, mixed>has()
Returns whether an index exists in the session array.
public
has(string $key) : bool
Parameters
- $key : string
-
Identifier of the session property we are interested in.
Return values
boolkeepFlashdata()
Keeps a single piece of flash data alive for one more request.
public
keepFlashdata(array<string|int, mixed>|string $key) : mixed
Parameters
- $key : array<string|int, mixed>|string
-
Property identifier or array of them
markAsFlashdata()
Mark a session property or properties as flashdata.
public
markAsFlashdata(array<string|int, mixed>|string $key) : bool
Parameters
- $key : array<string|int, mixed>|string
-
Property identifier or array of them
Return values
bool —False if any of the properties are not already set
markAsTempdata()
Mark one of more pieces of data as being temporary, meaning that it has a set lifespan within the session.
public
markAsTempdata(array<string|int, mixed>|string $key[, int $ttl = 300 ]) : bool
Parameters
- $key : array<string|int, mixed>|string
-
Property identifier or array of them
- $ttl : int = 300
-
Time to live, in seconds
Return values
bool —False if any of the properties were not set
push()
Push new value onto session value that is array.
public
push(string $key, array<string|int, mixed> $data) : mixed
Parameters
- $key : string
-
Identifier of the session property we are interested in.
- $data : array<string|int, mixed>
-
value to be pushed to existing session key.
regenerate()
Regenerates the session ID.
public
regenerate([bool $destroy = false ]) : mixed
Parameters
- $destroy : bool = false
-
Should old session data be destroyed?
remove()
Remove one or more session properties.
public
remove(array<string|int, mixed>|string $key) : mixed
If $key is an array, it is interpreted as an array of string property identifiers to remove. Otherwise, it is interpreted as the identifier of a specific session property to remove.
Parameters
- $key : array<string|int, mixed>|string
-
Identifier of the session property or properties to remove.
removeTempdata()
Removes a single piece of temporary data from the session.
public
removeTempdata(string $key) : mixed
Parameters
- $key : string
-
Session data key
set()
Sets user data into the session.
public
set(array<string|int, mixed>|string $data[, array<string|int, mixed>|bool|float|int|object|string|null $value = null ]) : mixed
If $data is a string, then it is interpreted as a session property key, and $value is expected to be non-null.
If $data is an array, it is expected to be an array of key/value pairs to be set as session properties.
Parameters
- $data : array<string|int, mixed>|string
-
Property name or associative array of properties
- $value : array<string|int, mixed>|bool|float|int|object|string|null = null
-
Property value if single key provided
setFlashdata()
Sets data into the session that will only last for a single request.
public
setFlashdata(array<string|int, mixed>|string $data[, array<string|int, mixed>|bool|float|int|object|string|null $value = null ]) : mixed
Perfect for use with single-use status update messages.
If $data is an array, it is interpreted as an associative array of key/value pairs for flashdata properties. Otherwise, it is interpreted as the identifier of a specific flashdata property, with $value containing the property value.
Parameters
- $data : array<string|int, mixed>|string
-
Property identifier or associative array of properties
- $value : array<string|int, mixed>|bool|float|int|object|string|null = null
-
Property value if $data is a scalar
setTempdata()
Sets new data into the session, and marks it as temporary data with a set lifespan.
public
setTempdata(array<string|int, mixed>|string $data[, array<string|int, mixed>|bool|float|int|object|string|null $value = null ][, int $ttl = 300 ]) : mixed
Parameters
- $data : array<string|int, mixed>|string
-
Session data key or associative array of items
- $value : array<string|int, mixed>|bool|float|int|object|string|null = null
-
Value to store
- $ttl : int = 300
-
Time-to-live in seconds
start()
Initialize the session container and starts up the session.
public
start() : $this|void
Return values
$this|voidstop()
Destroys the current session.
public
stop() : mixed
Use destroy() instead.
unmarkFlashdata()
Unmark data in the session as flashdata.
public
unmarkFlashdata(array<string|int, mixed>|string $key) : mixed
Parameters
- $key : array<string|int, mixed>|string
-
Property identifier or array of them
unmarkTempdata()
Unmarks temporary data in the session, effectively removing its lifespan and allowing it to live as long as the session does.
public
unmarkTempdata(array<string|int, mixed>|string $key) : mixed
Parameters
- $key : array<string|int, mixed>|string
-
Property identifier or array of them
configure()
Configuration.
protected
configure() : mixed
Handle input binds and configuration defaults.
configureSidLength()
Configure session ID length
protected
configureSidLength() : mixed
To make life easier, we used to force SHA-1 and 4 bits per character on everyone. And of course, someone was unhappy.
Then PHP 7.1 broke backwards-compatibility because ext/session is such a mess that nobody wants to touch it with a pole stick, and the one guy who does, nobody has the energy to argue with.
So we were forced to make changes, and OF COURSE something was going to break and now we have this pile of shit. -- Narf
initVars()
Handle temporary variables
protected
initVars() : mixed
Clears old "flash" data, marks the new one for deletion and handles "temp" data deletion.
setCookie()
Takes care of setting the cookie on the client side.
protected
setCookie() : mixed
Extracted for testing reasons.
setSaveHandler()
Sets the driver as the session handler in PHP.
protected
setSaveHandler() : mixed
Extracted for easier testing.
startSession()
Starts the session.
protected
startSession() : mixed
Extracted for testing reasons.
removeOldSessionCookie()
private
removeOldSessionCookie() : void