Aplus Framework Docs

MemcachedHandler extends SaveHandler
in package

Class MemcachedHandler.

Table of Contents

$config  : array<string|int, mixed>
The configurations used by the save handler.
$fingerprint  : string
The current data fingerprint.
$lockId  : string|false
The lock id or false if is not locked.
$logger  : Logger|null
The Logger instance or null if it was not set.
$memcached  : Memcached|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>
getMemcached()  : Memcached|null
open()  : bool
Initialize the session.
read()  : string
Read session data.
setMemcached()  : static
updateTimestamp()  : bool
Update the timestamp of a session.
validateId()  : bool
Validate session id.
write()  : bool
Write session data.
getExpiration()  : int
Get expiration as a timestamp.
getIP()  : string
Get the remote IP address.
getKey()  : string
Get a key for Memcached, 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 MemcachedHandler.
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 string|false $lockId = false

$logger

The Logger instance or null if it was not set.

protected Logger|null $logger

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

getMemcached()

public getMemcached() : Memcached|null
Return values
Memcached|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

setMemcached()

public setMemcached(Memcached $memcached) : static
Parameters
$memcached : Memcached
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

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 Memcached, using the optional prefix, match IP and match User-Agent configs.

protected getKey(string $id) : string

NOTE: The max key length allowed by Memcached is 250 bytes.

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 MemcachedHandler.

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' => '',
    // A list of Memcached servers
    'servers' => [
        [
            'host' => '127.0.0.1', // host always is required
            'port' => 11211, // port is optional, default to 11211
            'weight' => 0, // weight is optional, default to 0
        ],
    ],
    // An associative array of Memcached::OPT_* constants
    'options' => [
        Memcached::OPT_BINARY_PROTOCOL => true,
    ],
    // 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

Search results