DynamoDbStore
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
Get the number of seconds until the given DateTime.
If the given value is an interval, convert it to a DateTime instance.
Given a start time, format the total run time for human readability.
Create a new store instance.
Retrieve an item from the cache by key.
Retrieve multiple items from the cache by key.
Determine if the given item is expired.
Store an item in the cache for a given number of seconds.
Store multiple items in the cache for a given number of seconds.
Store an item in the cache if the key doesn't exist.
Increment the value of an item in the cache.
Decrement the value of an item in the cache.
Store an item in the cache indefinitely.
Restore a lock instance using the owner identifier.
Remove an item from the cache.
Remove all items from the cache.
Get the UNIX timestamp for the given number of seconds.
Serialize the value.
Unserialize the value.
Get the DynamoDB type for the given value.
Get the cache key prefix.
Set the cache key prefix.
Get the DynamoDb Client instance.
Details
protected int
secondsUntil(DateTimeInterface|DateInterval|int $delay)
Get the number of seconds until the given DateTime.
protected int
availableAt(DateTimeInterface|DateInterval|int $delay = 0)
Get the "available at" UNIX timestamp.
protected DateTimeInterface|int
parseDateInterval(DateTimeInterface|DateInterval|int $delay)
If the given value is an interval, convert it to a DateTime instance.
protected int
currentTime()
Get the current system time as a UNIX timestamp.
protected 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.
Items not found in the cache will have a null value.
protected 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
lock(string $name, int $seconds = 0, string|null $owner = null)
Get a lock instance.
Lock
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.
protected int
toTimestamp(int $seconds)
Get the UNIX timestamp for the given number of seconds.
protected mixed
serialize(mixed $value)
Serialize the value.
protected mixed
unserialize(mixed $value)
Unserialize the value.
protected 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.