PHP Класс MatthiasMullie\Scrapbook\Adapters\SQL

This abstract class should be a "fits all DB engines" normalization. It's up to extending classes to optimize for that specific engine.
Автор: Matthias Mullie ([email protected])
Наследование: implements MatthiasMullie\Scrapbook\KeyValueStore
Показать файл Открыть проект

Защищенные свойства (Protected)

Свойство Тип Описание
$client PDO
$table string

Открытые методы

Метод Описание
__construct ( PDO $client, string $table = 'cache' )
add ( $key, $value, $expire )
cas ( $token, $key, $value, $expire )
decrement ( $key, $offset = 1, $initial, $expire )
delete ( $key )
deleteMulti ( array $keys )
flush ( )
get ( $key, &$token = null )
getMulti ( array $keys, array &$tokens = null )
increment ( $key, $offset = 1, $initial, $expire )
replace ( $key, $value, $expire )
set ( $key, $value, $expire )
setMulti ( array $items, $expire )
touch ( $key, $expire )

Защищенные методы

Метод Описание
clearExpired ( ) Expired entries shouldn't keep filling up the database. Additionally, we will want to remove those in order to properly rely on INSERT (for add) and UPDATE (for replace), which assume a column exists or not, not taking the expiration status into consideration.
doIncrement ( string $key, integer $offset, integer $initial, integer $expire ) : integer | boolean Shared between increment/decrement: both have mostly the same logic (decrement just increments a negative value), but need their validation & use of non-ttl native methods split up.
expire ( integer $expire ) : null | string Transforms expiration times into TIMESTAMP (Y-m-d H:i:s) format, which DB will understand and be able to compare with other dates.
init ( ) Create the database/indices if it does not already exist.
serialize ( mixed $value ) : string | integer I originally didn't want to serialize numeric values because I planned on incrementing them in the DB, but revisited that idea.
unserialize ( mixed $value ) : mixed | integer | float Numbers aren't serialized for storage size purposes.

Описание методов

__construct() публичный Метод

public __construct ( PDO $client, string $table = 'cache' )
$client PDO
$table string

add() публичный Метод

public add ( $key, $value, $expire )

cas() публичный Метод

public cas ( $token, $key, $value, $expire )

clearExpired() защищенный Метод

An expired column should simply not exist.
protected clearExpired ( )

decrement() публичный Метод

public decrement ( $key, $offset = 1, $initial, $expire )

delete() публичный Метод

public delete ( $key )

deleteMulti() публичный Метод

public deleteMulti ( array $keys )
$keys array

doIncrement() защищенный Метод

Shared between increment/decrement: both have mostly the same logic (decrement just increments a negative value), but need their validation & use of non-ttl native methods split up.
protected doIncrement ( string $key, integer $offset, integer $initial, integer $expire ) : integer | boolean
$key string
$offset integer
$initial integer
$expire integer
Результат integer | boolean

expire() защищенный Метод

Transforms expiration times into TIMESTAMP (Y-m-d H:i:s) format, which DB will understand and be able to compare with other dates.
protected expire ( integer $expire ) : null | string
$expire integer
Результат null | string

flush() публичный Метод

public flush ( )

get() публичный Метод

public get ( $key, &$token = null )

getMulti() публичный Метод

public getMulti ( array $keys, array &$tokens = null )
$keys array
$tokens array

increment() публичный Метод

public increment ( $key, $offset = 1, $initial, $expire )

init() абстрактный защищенный Метод

Create the database/indices if it does not already exist.
abstract protected init ( )

replace() публичный Метод

public replace ( $key, $value, $expire )

serialize() защищенный Метод

However, not serializing numbers still causes some small DB storage gains and it's safe (serialized data can never be confused for an int).
protected serialize ( mixed $value ) : string | integer
$value mixed
Результат string | integer

set() публичный Метод

public set ( $key, $value, $expire )

setMulti() публичный Метод

public setMulti ( array $items, $expire )
$items array

touch() публичный Метод

public touch ( $key, $expire )

unserialize() защищенный Метод

Numbers aren't serialized for storage size purposes.
protected unserialize ( mixed $value ) : mixed | integer | float
$value mixed
Результат mixed | integer | float

Описание свойств

$client защищенное свойство

protected PDO $client
Результат PDO

$table защищенное свойство

protected string $table
Результат string