|
Moodle PHP Documentation 4.5
Moodle 4.5.5+ (Build: 20250711) (ce34e8ff087)
|
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