RedisHandler
extends SaveHandler
in package
Class RedisHandler.
Table of Contents
- $config : array<string|int, mixed>
- The configurations used by the save handler.
- $fingerprint : string
- The current data fingerprint.
- $lockId : false|string
- The lock id or false if is not locked.
- $logger : Logger|null
- The Logger instance or null if it was not set.
- $redis : Redis|null
- $sessionExists : bool
- Tells if the session exists (if was read).
- $sessionId : string|null
- The current session ID.
- __construct() : mixed
- SessionSaveHandler constructor.
- close() : bool
- Close the session.
- destroy() : bool
- Destroy a session.
- gc() : false|int
- Cleanup old sessions.
- getConfig() : array<string, mixed>
- getRedis() : Redis|null
- open() : bool
- Initialize the session.
- read() : string
- Read session data.
- setRedis() : static
- updateTimestamp() : bool
- Update the timestamp of a session.
- validateId() : bool
- Validate session id.
- write() : bool
- Write session data.
- getIP() : string
- Get the remote IP address.
- getKey() : string
- Get a key for Redis, using the optional prefix, match IP and match User-Agent configs.
- getKeySuffix() : string
- getMaxlifetime() : int
- Get the maxlifetime (TTL) used by cache handlers or locking.
- getUA() : string
- Get the HTTP User-Agent.
- hasSameFingerprint() : bool
- Tells if the data has the same current fingerprint.
- lock() : bool
- Acquire a lock for a session id.
- log() : void
- Log a message if the Logger is set.
- prepareConfig() : void
- Prepare configurations to be used by the RedisHandler.
- setFingerprint() : void
- Set the data fingerprint.
- unlock() : bool
- Unlock the current session lock id.
Properties
$config
The configurations used by the save handler.
protected
array<string|int, mixed>
$config
$fingerprint
The current data fingerprint.
protected
string
$fingerprint
$lockId
The lock id or false if is not locked.
protected
false|string
$lockId
= false
$logger
The Logger instance or null if it was not set.
protected
Logger|null
$logger
$redis
protected
Redis|null
$redis
$sessionExists
Tells if the session exists (if was read).
protected
bool
$sessionExists
= false
$sessionId
The current session ID.
protected
string|null
$sessionId
Methods
__construct()
SessionSaveHandler constructor.
public
__construct([array<string, mixed> $config = [] ][, Logger|null $logger = null ]) : mixed
Parameters
- $config : array<string, mixed> = []
- $logger : Logger|null = null
Return values
mixed —close()
Close the session.
public
close() : bool
Return values
bool —Returns TRUE on success, FALSE on failure
destroy()
Destroy a session.
public
destroy(mixed $id) : bool
Parameters
- $id : mixed
-
The session ID being destroyed
Return values
bool —Returns TRUE on success, FALSE on failure
gc()
Cleanup old sessions.
public
gc(mixed $max_lifetime) : false|int
Parameters
- $max_lifetime : mixed
-
Sessions that have not updated for the last $maxLifetime seconds will be removed
Return values
false|int —Returns the number of deleted session data for success, false for failure
getConfig()
public
getConfig() : array<string, mixed>
Return values
array<string, mixed> —getRedis()
public
getRedis() : Redis|null
Return values
Redis|null —open()
Initialize the session.
public
open(mixed $path, mixed $name) : bool
Parameters
- $path : mixed
-
The path where to store/retrieve the session
- $name : mixed
-
The session name
Return values
bool —Returns TRUE on success, FALSE on failure
read()
Read session data.
public
read(mixed $id) : string
Parameters
- $id : mixed
-
The session id to read data for
Return values
string —Returns an encoded string of the read data. If nothing was read, it returns an empty string
setRedis()
public
setRedis(Redis $redis) : static
Parameters
- $redis : Redis
Return values
static —updateTimestamp()
Update the timestamp of a session.
public
updateTimestamp(mixed $id, mixed $data) : bool
Parameters
- $id : mixed
-
The session id
- $data : mixed
-
The encoded session data. This data is the result of the PHP internally encoding the $_SESSION superglobal to a serialized string and passing it as this parameter.
NOTE: Sessions can use an alternative serialization method
Return values
bool —Returns TRUE on success, FALSE on failure
validateId()
Validate session id.
public
validateId(string $id) : bool
Parameters
- $id : string
-
The session id
Tags
Return values
bool —Returns TRUE if the id is valid, otherwise FALSE
write()
Write session data.
public
write(mixed $id, mixed $data) : bool
Parameters
- $id : mixed
-
The session id
- $data : mixed
-
The encoded session data. This data is the result of the PHP internally encoding the $_SESSION superglobal to a serialized string and passing it as this parameter.
NOTE: Sessions can use an alternative serialization method
Return values
bool —Returns TRUE on success, FALSE on failure
getIP()
Get the remote IP address.
protected
getIP() : string
Return values
string —getKey()
Get a key for Redis, using the optional prefix, match IP and match User-Agent configs.
protected
getKey(string $id) : string
Parameters
- $id : string
-
The session id
Return values
string —The final key
getKeySuffix()
protected
getKeySuffix() : string
Return values
string —getMaxlifetime()
Get the maxlifetime (TTL) used by cache handlers or locking.
protected
getMaxlifetime() : int
NOTE: It will use the maxlifetime
config or the ini value of
session.gc_maxlifetime
as fallback.
Return values
int —The maximum lifetime of a session in seconds
getUA()
Get the HTTP User-Agent.
protected
getUA() : string
Return values
string —hasSameFingerprint()
Tells if the data has the same current fingerprint.
protected
hasSameFingerprint(string $data) : bool
Parameters
- $data : string
-
The data to compare
Return values
bool —True if the fingerprints are the same, otherwise false
lock()
Acquire a lock for a session id.
protected
lock(string $id) : bool
Parameters
- $id : string
-
The session id
Return values
bool —Returns TRUE on success, FALSE on failure
log()
Log a message if the Logger is set.
protected
log(string $message[, LogLevel $level = LogLevel::ERROR ]) : void
Parameters
- $message : string
-
The message to log
- $level : LogLevel = LogLevel::ERROR
-
The log level
Return values
void —prepareConfig()
Prepare configurations to be used by the RedisHandler.
protected
prepareConfig(array<string, mixed> $config) : void
Parameters
- $config : array<string, mixed>
-
Custom configs
The custom configs are:
$configs = [ // A custom prefix prepended in the keys 'prefix' => '', // The Redis host 'host' => '127.0.0.1', // The Redis host port 'port' => 6379, // The connection timeout 'timeout' => 0.0, // Optional auth password 'password' => null, // Optional database to select 'database' => null, // Maximum attempts to try lock a session id 'lock_attempts' => 60, // Interval between the lock attempts in microseconds 'lock_sleep' => 1_000_000, // TTL to the lock (valid for the current session only) 'lock_ttl' => 600, // The maxlifetime (TTL) used for cache item expiration 'maxlifetime' => null, // Null to use the ini value of session.gc_maxlifetime // Match IP? 'match_ip' => false, // Match User-Agent? 'match_ua' => false, ];
Return values
void —setFingerprint()
Set the data fingerprint.
protected
setFingerprint(string $data) : void
Parameters
- $data : string
-
The data to set the new fingerprint
Return values
void —unlock()
Unlock the current session lock id.
protected
unlock() : bool
Return values
bool —Returns TRUE on success, FALSE on failure