CodeIgniter v4.7 API

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
see
SessionTest

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

$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 : array)

getFlashdata()

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 : array)

getFlashKeys()

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 : array)

getTempKeys()

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
bool

keepFlashdata()

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
bool

markAsTempdata()

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
bool

push()

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|null

unmarkFlashdata()

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
codeCoverageIgnore

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

        
On this page

Search results