class DynamoDbStore implements LockProvider, Store (View source)

Traits

Properties

protected DynamoDbClient $dynamo

The DynamoDB client instance.

protected string $table

The table name.

protected string $keyAttribute

The name of the attribute that should hold the key.

protected string $valueAttribute

The name of the attribute that should hold the value.

protected string $expirationAttribute

The name of the attribute that should hold the expiration timestamp.

protected string $prefix

A string that should be prepended to keys.

Methods

int
secondsUntil(DateTimeInterface|DateInterval|int $delay)

Get the number of seconds until the given DateTime.

int
availableAt(DateTimeInterface|DateInterval|int $delay = 0)

Get the "available at" UNIX timestamp.

parseDateInterval(DateTimeInterface|DateInterval|int $delay)

If the given value is an interval, convert it to a DateTime instance.

int
currentTime()

Get the current system time as a UNIX timestamp.

string
runTimeForHumans(float $startTime, float $endTime = null)

Given a start time, format the total run time for human readability.

void
__construct(DynamoDbClient $dynamo, string $table, string $keyAttribute = 'key', string $valueAttribute = 'value', string $expirationAttribute = 'expires_at', string $prefix = '')

Create a new store instance.

mixed
get(string $key)

Retrieve an item from the cache by key.

array
many(array $keys)

Retrieve multiple items from the cache by key.

bool
isExpired(array $item, DateTimeInterface|null $expiration = null)

Determine if the given item is expired.

bool
put(string $key, mixed $value, int $seconds)

Store an item in the cache for a given number of seconds.

bool
putMany(array $values, int $seconds)

Store multiple items in the cache for a given number of seconds.

bool
add(string $key, mixed $value, int $seconds)

Store an item in the cache if the key doesn't exist.

int|bool
increment(string $key, mixed $value = 1)

Increment the value of an item in the cache.

int|bool
decrement(string $key, mixed $value = 1)

Decrement the value of an item in the cache.

bool
forever(string $key, mixed $value)

Store an item in the cache indefinitely.

lock(string $name, int $seconds = 0, string|null $owner = null)

Get a lock instance.

restoreLock(string $name, string $owner)

Restore a lock instance using the owner identifier.

bool
forget(string $key)

Remove an item from the cache.

bool
flush()

Remove all items from the cache.

int
toTimestamp(int $seconds)

Get the UNIX timestamp for the given number of seconds.

mixed
serialize(mixed $value)

Serialize the value.

mixed
unserialize(mixed $value)

Unserialize the value.

string
type(mixed $value)

Get the DynamoDB type for the given value.

string
getPrefix()

Get the cache key prefix.

void
setPrefix(string $prefix)

Set the cache key prefix.

DynamoDbClient
getClient()

Get the DynamoDb Client instance.

Details

protected int secondsUntil(DateTimeInterface|DateInterval|int $delay)

Get the number of seconds until the given DateTime.

Parameters

DateTimeInterface|DateInterval|int $delay

Return Value

int

protected int availableAt(DateTimeInterface|DateInterval|int $delay = 0)

Get the "available at" UNIX timestamp.

Parameters

DateTimeInterface|DateInterval|int $delay

Return Value

int

protected DateTimeInterface|int parseDateInterval(DateTimeInterface|DateInterval|int $delay)

If the given value is an interval, convert it to a DateTime instance.

Parameters

DateTimeInterface|DateInterval|int $delay

Return Value

DateTimeInterface|int

protected int currentTime()

Get the current system time as a UNIX timestamp.

Return Value

int

protected string runTimeForHumans(float $startTime, float $endTime = null)

Given a start time, format the total run time for human readability.

Parameters

float $startTime
float $endTime

Return Value

string

void __construct(DynamoDbClient $dynamo, string $table, string $keyAttribute = 'key', string $valueAttribute = 'value', string $expirationAttribute = 'expires_at', string $prefix = '')

Create a new store instance.

Parameters

DynamoDbClient $dynamo
string $table
string $keyAttribute
string $valueAttribute
string $expirationAttribute
string $prefix

Return Value

void

mixed get(string $key)

Retrieve an item from the cache by key.

Parameters

string $key

Return Value

mixed

array many(array $keys)

Retrieve multiple items from the cache by key.

Items not found in the cache will have a null value.

Parameters

array $keys

Return Value

array

protected bool isExpired(array $item, DateTimeInterface|null $expiration = null)

Determine if the given item is expired.

Parameters

array $item
DateTimeInterface|null $expiration

Return Value

bool

bool put(string $key, mixed $value, int $seconds)

Store an item in the cache for a given number of seconds.

Parameters

string $key
mixed $value
int $seconds

Return Value

bool

bool putMany(array $values, int $seconds)

Store multiple items in the cache for a given number of seconds.

Parameters

array $values
int $seconds

Return Value

bool

bool add(string $key, mixed $value, int $seconds)

Store an item in the cache if the key doesn't exist.

Parameters

string $key
mixed $value
int $seconds

Return Value

bool

int|bool increment(string $key, mixed $value = 1)

Increment the value of an item in the cache.

Parameters

string $key
mixed $value

Return Value

int|bool

int|bool decrement(string $key, mixed $value = 1)

Decrement the value of an item in the cache.

Parameters

string $key
mixed $value

Return Value

int|bool

bool forever(string $key, mixed $value)

Store an item in the cache indefinitely.

Parameters

string $key
mixed $value

Return Value

bool

Lock lock(string $name, int $seconds = 0, string|null $owner = null)

Get a lock instance.

Parameters

string $name
int $seconds
string|null $owner

Return Value

Lock

Lock restoreLock(string $name, string $owner)

Restore a lock instance using the owner identifier.

Parameters

string $name
string $owner

Return Value

Lock

bool forget(string $key)

Remove an item from the cache.

Parameters

string $key

Return Value

bool

bool flush()

Remove all items from the cache.

Return Value

bool

Exceptions

RuntimeException

protected int toTimestamp(int $seconds)

Get the UNIX timestamp for the given number of seconds.

Parameters

int $seconds

Return Value

int

protected mixed serialize(mixed $value)

Serialize the value.

Parameters

mixed $value

Return Value

mixed

protected mixed unserialize(mixed $value)

Unserialize the value.

Parameters

mixed $value

Return Value

mixed

protected string type(mixed $value)

Get the DynamoDB type for the given value.

Parameters

mixed $value

Return Value

string

string getPrefix()

Get the cache key prefix.

Return Value

string

void setPrefix(string $prefix)

Set the cache key prefix.

Parameters

string $prefix

Return Value

void

DynamoDbClient getClient()

Get the DynamoDb Client instance.

Return Value

DynamoDbClient