Aplus Framework Docs

MemcachedHandler extends SaveHandler
in package

Class MemcachedHandler.

Table of Contents

Properties

$config  : array<string, 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.
$memcached  : Memcached|null
$sessionExists  : bool
Tells if the session exists (if was read).
$sessionId  : string|null
The current session ID.
$setByExternal  : bool
It says that the handler object was set with an externally created object.

Methods

__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, 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

$sessionExists

Tells if the session exists (if was read).

protected bool $sessionExists = false

$sessionId

The current session ID.

protected string|null $sessionId

$setByExternal

It says that the handler object was set with an externally created object.

protected bool $setByExternal = false

If this is true, the handler object should not be changed or removed (in the close method).

Some functions, such as session_regenerate_id, call the close method and then open again!

Methods

__construct()

SessionSaveHandler constructor.

public __construct([array<string, mixed> $config = [] ][, Logger|null $logger = null ]) : mixed
Parameters
$config : array<string, mixed> = []
$logger : Logger|null = null

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

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,
];

setFingerprint()

Set the data fingerprint.

protected setFingerprint(string $data) : void
Parameters
$data : string

The data to set the new fingerprint

unlock()

Unlock the current session lock id.

protected unlock() : bool
Return values
bool —

Returns TRUE on success, FALSE on failure


        
On this page

Search results