DatabaseStore
class DatabaseStore implements LockProvider, Store (View source)
Traits
Properties
protected ConnectionInterface | $connection | The database connection instance. |
|
protected ConnectionInterface | $lockConnection | The database connection instance that should be used to manage locks. |
|
protected string | $table | The name of the cache table. |
|
protected string | $prefix | A string that should be prepended to keys. |
|
protected string | $lockTable | The name of the cache locks table. |
|
protected array | $lockLottery | An array representation of the lock lottery odds. |
|
protected int | $defaultLockTimeoutInSeconds | The default number of seconds that a lock should be held. |
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 database store.
Retrieve an item from the cache by key.
Retrieve multiple items from the cache by key.
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.
Increment or decrement an item in the cache.
Get the current system time.
Store an item in the cache indefinitely.
Restore a lock instance using the owner identifier.
Remove an item from the cache.
Remove an item from the cache if it is expired.
Remove all items from the cache.
Remove all expired items from the given set from the cache.
Remove all items from the cache.
Get the underlying database connection.
Specify the name of the connection that should be used to manage locks.
Get the cache key prefix.
Set the cache key prefix.
Serialize the given value.
Unserialize the given value.
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(ConnectionInterface $connection, string $table, string $prefix = '', string $lockTable = 'cache_locks', array $lockLottery = [2, 100], $defaultLockTimeoutInSeconds = 86400)
Create a new database store.
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.
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.
protected int|false
incrementOrDecrement(string $key, int|float $value, Closure $callback)
Increment or decrement an item in the cache.
protected int
getTime()
Get the current system time.
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
forgetIfExpired(string $key)
Remove an item from the cache if it is expired.
protected bool
forgetMany(array $keys)
Remove all items from the cache.
protected bool
forgetManyIfExpired(array $keys, bool $prefixed = false)
Remove all expired items from the given set from the cache.
bool
flush()
Remove all items from the cache.
protected Builder
table()
Get a query builder for the cache table.
ConnectionInterface
getConnection()
Get the underlying database connection.
$this
setLockConnection(ConnectionInterface $connection)
Specify the name of the connection that should be used to manage locks.
string
getPrefix()
Get the cache key prefix.
void
setPrefix(string $prefix)
Set the cache key prefix.
protected string
serialize(mixed $value)
Serialize the given value.
protected mixed
unserialize(string $value)
Unserialize the given value.