CodeIgniter v4.5 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 app/config/App.php

Tags
see
SessionTest

Table of Contents

Interfaces

SessionInterface
Expected behavior of a session container used with CodeIgniter.

Properties

$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

$session_id

public string $session_id

$config

Session Config

protected Session $config

$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
todo

address memcache & redis needs

IMPORTANT: You are REQUIRED to set a valid save path!

$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
bool

keepFlashdata()

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

stop()

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
Tags
codeCoverageIgnore

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

        
On this page

Search results