Moodle PHP Documentation 5.1
Moodle 5.1dev (Build: 20250530) (c39b7370636)
|
Public Member Functions | |
__construct () | |
Create new instance of handler. | |
abort () | |
Release lock on the session without writing it. | |
add_session (int $userid) | |
Insert new empty session record. | |
close () | |
Close the session completely. | |
destroy (string $id) | |
Destroy a specific session and delete this session record for this session id. | |
destroy_all () | |
Destroy all sessions, and delete all the session data. | |
destroy_by_auth_plugin (string $pluginname) | |
Destroy all sessions for a given plugin. | |
gc (int $max_lifetime=0) | |
Periodic timed-out session cleanup. | |
get_all_sessions () | |
Returns all session records. | |
get_session_by_sid (string $sid) | |
Returns a single session record for this session id. | |
get_sessions_by_userid (int $userid) | |
Returns all the session records for this user id. | |
init () | |
Init session handler. | |
open (string $path, string $name) | |
Update our session search path to include session name when opened. | |
read (string $id) | |
Read the session data from storage. | |
requires_write_lock () | |
Has this session been opened with a writelock? | |
session_exists ($sid) | |
Check the backend contains data for this session id. | |
set_requires_write_lock ($requireswritelock) | |
This is called after init() and before start() to indicate whether the session opened should be writable or not. | |
start () | |
Start the session. | |
update_session (stdClass $record) | |
Update a session record. | |
update_session (\stdClass $record) | |
write (string $id, string $data) | |
Write the serialized session data to our session store. | |
write_close () | |
Write the session and release lock. | |
Protected Member Functions | |
destroy_all_expired_sessions (int $purgebefore) | |
Clean up all expired sessions. | |
destroy_expired_user_sessions (int $purgebefore, int $userid) | |
Clean up expired sessions. | |
lock_session ($id) | |
Obtain a session lock so we are the only one using it at the moment. | |
unlock_session ($id) | |
Unlock a session. | |
Protected Attributes | |
int | $acquiretimeout = 120 |
$acquiretimeout how long to wait for session lock in seconds | |
int | $acquirewarn = null |
$acquirewarn how long before warning when waiting for a lock in seconds | |
string | $auth = '' |
$auth redis password | |
clock clock | $clock |
A clock instance. | |
bool bool | $clustermode = false |
$clustermode Redis in cluster mode. | |
int | $compressor = self::COMPRESSION_NONE |
$compressor The compressor to use | |
Redis RedisCluster null Redis RedisCluster null | $connection = null |
Connection. | |
int int | $connectiontimeout = 3 |
$connectiontimeout The number of seconds to wait for a connection or response from the Redis server. | |
int | $database = 0 |
$database the Redis database to store sesions in | |
int int | $firstaccesstimeout = 180 |
$firstaccesstimeout The initial timeout (seconds) for the first browser access without login. | |
int int | $gcbatchsize = 100 |
$gcbatchsize The number of redis keys that will be processed each time the garbage collector is executed. | |
array array | $host = [] |
$host save_path string | |
string | $lasthash = null |
$lasthash hash of the session data content | |
int int | $lockexpire |
How long to wait in seconds before expiring the lock automatically so that other requests may continue execution. | |
int | $lockretry = 100 |
$lockretry how long to wait between session lock attempts in ms | |
array | $locks = array() |
$locks List of currently held locks by this page. | |
int int | $maxretries = 3 |
Maximum number of retries for cache store operations. | |
int | $port = 6379 |
$port The port to connect to | |
array | $prefix = '' |
$servers list of servers parsed from save_path | |
boolean | $requireswritelock = false |
$requireswritelock does the session need and/or have a lock? | |
int | $serializer = Redis::SERIALIZER_PHP |
$serializer The serializer to use | |
string string | $sessionkeyprefix = 'session_' |
$sessionkeyprefix the prefix for the session key | |
array | $sslopts = [] |
$sslopts SSL options, if applicable | |
int | $timeout |
$timeout How long sessions live before expiring. | |
string string | $userkeyprefix = 'user_' |
$userkeyprefix the prefix for the user key | |
|
inherited |
Release lock on the session without writing it.
May not be possible in older versions of PHP. If so, session may be written anyway so that any locks are released.
core\session\redis::add_session | ( | int | $userid | ) |
Insert new empty session record.
int | $userid |
stdClass | the new record |
Reimplemented from core\session\handler.
core\session\redis::close | ( | ) |
Close the session completely.
We also remove all locks we may have obtained that aren't expired.
bool | true on success. false on unable to unlock sessions. |
core\session\redis::destroy | ( | string | $id | ) |
Destroy a specific session and delete this session record for this session id.
string | $id | session id |
bool |
Reimplemented from core\session\handler.
core\session\redis::destroy_all | ( | ) |
Destroy all sessions, and delete all the session data.
bool |
Reimplemented from core\session\handler.
|
protectedinherited |
Clean up all expired sessions.
int | $purgebefore |
|
inherited |
Destroy all sessions for a given plugin.
Typically used when a plugin is disabled or uninstalled, so all sessions (users) for that plugin are logged out.
string | $pluginname | Auth plugin name. |
|
protectedinherited |
Clean up expired sessions.
int | $purgebefore | Sessions that have not updated for the last purgebefore timestamp will be removed. |
int | $userid |
core\session\redis::gc | ( | int | $max_lifetime = 0 | ) |
Periodic timed-out session cleanup.
int | $max_lifetime | Sessions that have not updated for the last max_lifetime seconds will be removed. |
int|false | Number of deleted sessions or false if an error occurred. |
Reimplemented from core\session\handler.
core\session\redis::get_all_sessions | ( | ) |
core\session\redis::get_session_by_sid | ( | string | $sid | ) |
Returns a single session record for this session id.
string | $sid |
stdClass |
Reimplemented from core\session\handler.
core\session\redis::get_sessions_by_userid | ( | int | $userid | ) |
Returns all the session records for this user id.
int | $userid |
array |
Reimplemented from core\session\handler.
core\session\redis::init | ( | ) |
Init session handler.
Reimplemented from core\session\handler.
|
protected |
Obtain a session lock so we are the only one using it at the moment.
string | $id | The session id to lock. |
bool | true when session was locked, exception otherwise. |
exception | When we are unable to obtain a session lock. |
core\session\redis::open | ( | string | $path, |
string | $name ) |
Update our session search path to include session name when opened.
string | $path | unused session save path. (ignored) |
string | $name | Session name for this session. (ignored) |
bool | true always as we will succeed. |
core\session\redis::read | ( | string | $id | ) |
Read the session data from storage.
string | $id | The session id to read from storage. |
string|false | The session data for PHP to process or false. |
RedisException | when we are unable to talk to the Redis server. |
|
inherited |
Has this session been opened with a writelock?
Your handler should call this during start() if you support read-only sessions.
bool | true if session is intended to have a write lock. |
core\session\redis::session_exists | ( | $sid | ) |
Check the backend contains data for this session id.
Note: this is intended to be called from manager::session_exists() only.
string | $sid |
bool | true if session found. |
Reimplemented from core\session\handler.
|
inherited |
This is called after init() and before start() to indicate whether the session opened should be writable or not.
This is intentionally captured even if your handler doesn't support non-locking sessions, so that behavior (upon session close) matches closely between handlers.
bool | $requireswritelock | true if needs to be open for writing |
|
inherited |
|
protected |
Unlock a session.
string | $id | Session id to be unlocked. |
|
inherited |
Update a session record.
stdClass | $record |
bool |
core\session\redis::write | ( | string | $id, |
string | $data ) |
Write the serialized session data to our session store.
string | $id | session id to write. |
string | $data | session data |
bool | true on write success, false on failure |
|
inherited |
Write the session and release lock.
If the session was not intentionally opened with a write lock, then we will abort the session instead if able.
|
protected |
How long to wait in seconds before expiring the lock automatically so that other requests may continue execution.
$lockexpire