Session
in package
implements
SessionInterface
uses
LoggerAwareTrait
Implementation of CodeIgniter session container.
Session configuration is done through session variables and cookie related
variables in Сonfig\Session.
Tags
Table of Contents
Interfaces
- SessionInterface
- Expected behavior of a session container used with CodeIgniter.
Properties
- $session_id : string
- $config : Session
- $cookie : Cookie
- The session cookie instance.
- $driver : SessionHandlerInterface
- Instance of the driver to use.
- $sidRegexp : string
- Session ID regex expression.
Methods
- __construct() : mixed
- Extract configuration settings and save them here.
- __get() : mixed
- Magic method to get session variables by simply calling $foo = $session->foo;
- __isset() : bool
- Magic method to check for session variables.
- __set() : void
- 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() : void
- Destroys the current session.
-
get()
: ($key is string ? mixed : array
) - Get user data that has been set in the session.
-
getFlashdata()
: ($key is string ? mixed : array
) - Retrieve one or more items of flash data from the session.
- getFlashKeys() : array<int, string>
- Retrieve all of the keys for session data marked as flashdata.
-
getTempdata()
: ($key is string ? mixed : array
) - Returns either a single piece of tempdata, or all temp data currently in the session.
- getTempKeys() : array<int, string>
- 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() : void
- Keeps a single piece of flash data alive for one more request.
- markAsFlashdata() : bool
- Mark a session property or properties as flashdata. This returns `false` if any of the properties were not already set.
- markAsTempdata() : bool
- Mark one of more pieces of data as being temporary, meaning that it has a set lifespan within the session.
- push() : void
- Push new value onto session value that is array.
- regenerate() : void
- Regenerates the session ID.
- remove() : void
- Remove one or more session properties.
- removeTempdata() : void
- Removes a single piece of temporary data from the session.
- set() : void
- Sets user data into the session.
- setFlashdata() : void
- Sets data into the session that will only last for a single request.
- setTempdata() : void
- Sets new data into the session, and marks it as temporary data with a set lifespan.
- start() : $this|null
- Initialize the session container and starts up the session.
- unmarkFlashdata() : void
- Unmark data in the session as flashdata.
- unmarkTempdata() : void
- Unmarks temporary data in the session, effectively removing its lifespan and allowing it to live as long as the session does.
- configure() : void
- Configuration.
- configureSidLength() : void
- Configure session ID length.
- initVars() : void
- Handle temporary variables.
- setCookie() : void
- Takes care of setting the cookie on the client side.
- setSaveHandler() : void
- Sets the driver as the session handler in PHP.
- startSession() : void
- Starts the session.
- removeOldSessionCookie() : void
Properties
$session_id
public
string
$session_id
$config
protected
Session
$config
$cookie
The session cookie instance.
protected
Cookie
$cookie
$driver
Instance of the driver to use.
protected
SessionHandlerInterface
$driver
$sidRegexp
Session ID regex expression.
protected
string
$sidRegexp
Methods
__construct()
Extract configuration settings and save them here.
public
__construct(SessionHandlerInterface $driver, Session $config) : mixed
Parameters
- $driver : SessionHandlerInterface
- $config : Session
__get()
Magic method to get session variables by simply calling $foo = $session->foo;
public
__get(string $key) : mixed
Parameters
- $key : string
__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
Return values
bool__set()
Magic method to set variables in the session by simply calling $session->foo = 'bar';
public
__set(string $key, mixed $value) : void
Parameters
- $key : string
- $value : mixed
close()
Writes session data and close the current session.
public
close() : void
destroy()
Destroys the current session.
public
destroy() : void
get()
Get user data that has been set in the session.
public
get([string|null $key = null ]) : ($key is string ? mixed : array)
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 : string|null = null
-
Identifier of the session property to retrieve.
Return values
($key is string ? mixed : arraygetFlashdata()
Retrieve one or more items of flash data from the session.
public
getFlashdata([string|null $key = null ]) : ($key is string ? mixed : array)
If the item key is null, return all flashdata.
Parameters
- $key : string|null = null
-
Property identifier.
Return values
($key is string ? mixed : arraygetFlashKeys()
Retrieve all of the keys for session data marked as flashdata.
public
getFlashKeys() : array<int, string>
Return values
array<int, string>getTempdata()
Returns either a single piece of tempdata, or all temp data currently in the session.
public
getTempdata([string|null $key = null ]) : ($key is string ? mixed : array)
Parameters
- $key : string|null = null
-
Session data key.
Return values
($key is string ? mixed : arraygetTempKeys()
Retrieve the keys of all session data that have been marked as temporary data.
public
getTempKeys() : array<int, string>
Return values
array<int, string>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(mixed $key) : void
Parameters
- $key : mixed
-
Property identifier or array of them.
markAsFlashdata()
Mark a session property or properties as flashdata. This returns `false` if any of the properties were not already set.
public
markAsFlashdata(mixed $key) : bool
Parameters
- $key : mixed
-
Property identifier or array of them.
Return values
boolmarkAsTempdata()
Mark one of more pieces of data as being temporary, meaning that it has a set lifespan within the session.
public
markAsTempdata(mixed $key[, int $ttl = 300 ]) : bool
Returns false if any of the properties were not set.
Parameters
- $key : mixed
-
Property identifier or array of them
- $ttl : int = 300
-
Time to live, in seconds
Return values
boolpush()
Push new value onto session value that is array.
public
push(string $key, array<string, mixed> $data) : void
Parameters
- $key : string
-
Identifier of the session property we are interested in.
- $data : array<string, mixed>
-
value to be pushed to existing session key.
regenerate()
Regenerates the session ID.
public
regenerate([bool $destroy = false ]) : void
Parameters
- $destroy : bool = false
-
Should old session data be destroyed?
remove()
Remove one or more session properties.
public
remove(mixed $key) : void
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 : mixed
-
Identifier of the session property or properties to remove.
removeTempdata()
Removes a single piece of temporary data from the session.
public
removeTempdata(string $key) : void
Parameters
- $key : string
-
Session data key.
set()
Sets user data into the session.
public
set(mixed $data[, mixed $value = null ]) : void
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 : mixed
-
Property name or associative array of properties.
- $value : mixed = null
-
Property value if single key provided.
setFlashdata()
Sets data into the session that will only last for a single request.
public
setFlashdata(mixed $data[, mixed $value = null ]) : void
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 : mixed
-
Property identifier or associative array of properties
- $value : mixed = 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(mixed $data[, mixed $value = null ][, int $ttl = 300 ]) : void
Parameters
- $data : mixed
-
Session data key or associative array of items.
- $value : mixed = 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|null
Return values
$this|nullunmarkFlashdata()
Unmark data in the session as flashdata.
public
unmarkFlashdata(mixed $key) : void
Parameters
- $key : mixed
-
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(mixed $key) : void
Parameters
- $key : mixed
-
Property identifier or array of them.
configure()
Configuration.
protected
configure() : void
Handle input binds and configuration defaults.
configureSidLength()
Configure session ID length.
protected
configureSidLength() : void
To make life easier, we force the PHP defaults. Because PHP9 forces them. See https://wiki.php.net/rfc/deprecations_php_8_4#sessionsid_length_and_sessionsid_bits_per_character
initVars()
Handle temporary variables.
protected
initVars() : void
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() : void
Tags
setSaveHandler()
Sets the driver as the session handler in PHP.
protected
setSaveHandler() : void
Extracted for easier testing.
startSession()
Starts the session.
protected
startSession() : void
Extracted for testing reasons.
removeOldSessionCookie()
private
removeOldSessionCookie() : void