MongoDBCache
extends CacheProvider
in package
MongoDB cache provider.
Tags
Table of Contents
- DATA_FIELD = 'd'
- The data field will store the serialized PHP value.
- DOCTRINE_NAMESPACE_CACHEKEY = 'DoctrineNamespaceCacheKey[%s]'
- EXPIRATION_FIELD = 'e'
- The expiration field will store a MongoDate value indicating when the cache entry should expire.
- $collection : MongoCollection
- $namespace : string
- The namespace to prefix all cache ids with.
- $namespaceVersion : int|null
- The namespace version.
- __construct() : mixed
- Constructor.
- contains() : bool
- Tests if an entry exists in the cache.
- delete() : bool
- Deletes a cache entry.
- deleteAll() : bool
- Deletes all cache entries in the current cache namespace.
- fetch() : mixed
- Fetches an entry from the cache.
- fetchMultiple() : array<string|int, mixed>
- Returns an associative array of values for keys is found in cache.
- flushAll() : bool
- Flushes all cache entries, globally.
- getNamespace() : string
- Retrieves the namespace that prefixes all cache ids.
- getStats() : array<string|int, mixed>|null
- Retrieves cached information from the data store.
- save() : bool
- Puts data into the cache.
- saveMultiple() : bool
- Returns a boolean value indicating if the operation succeeded.
- setNamespace() : void
- Sets the namespace to prefix all cache ids with.
- doContains() : bool
- Tests if an entry exists in the cache.
- doDelete() : bool
- Deletes a cache entry.
- doFetch() : mixed|false
- Fetches an entry from the cache.
- doFetchMultiple() : array<string|int, mixed>
- Default implementation of doFetchMultiple. Each driver that supports multi-get should owerwrite it.
- doFlush() : bool
- Flushes all cache entries.
- doGetStats() : array<string|int, mixed>|null
- Retrieves cached information from the data store.
- doSave() : bool
- Puts data into the cache.
- doSaveMultiple() : bool
- Default implementation of doSaveMultiple. Each driver that supports multi-put should override it.
- getNamespaceCacheKey() : string
- Returns the namespace cache key.
- getNamespacedId() : string
- Prefixes the passed id with the configured namespace value.
- getNamespaceVersion() : int
- Returns the namespace version.
- isExpired() : bool
- Check if the document is expired.
Constants
DATA_FIELD
The data field will store the serialized PHP value.
public
mixed
DATA_FIELD
= 'd'
DOCTRINE_NAMESPACE_CACHEKEY
public
mixed
DOCTRINE_NAMESPACE_CACHEKEY
= 'DoctrineNamespaceCacheKey[%s]'
EXPIRATION_FIELD
The expiration field will store a MongoDate value indicating when the cache entry should expire.
public
mixed
EXPIRATION_FIELD
= 'e'
With MongoDB 2.2+, entries can be automatically deleted by MongoDB by indexing this field with the "expireAfterSeconds" option equal to zero. This will direct MongoDB to regularly query for and delete any entries whose date is older than the current time. Entries without a date value in this field will be ignored.
The cache provider will also check dates on its own, in case expired entries are fetched before MongoDB's TTLMonitor pass can expire them.
Tags
Properties
$collection
private
MongoCollection
$collection
$namespace
The namespace to prefix all cache ids with.
private
string
$namespace
= ''
$namespaceVersion
The namespace version.
private
int|null
$namespaceVersion
Methods
__construct()
Constructor.
public
__construct(MongoCollection $collection) : mixed
This provider will default to the write concern and read preference options set on the MongoCollection instance (or inherited from MongoDB or MongoClient). Using an unacknowledged write concern (< 1) may make the return values of delete() and save() unreliable. Reading from secondaries may make contain() and fetch() unreliable.
Parameters
- $collection : MongoCollection
Tags
Return values
mixed —contains()
Tests if an entry exists in the cache.
public
contains(mixed $id) : bool
Parameters
- $id : mixed
-
The cache id of the entry to check for.
Return values
bool —TRUE if a cache entry exists for the given cache id, FALSE otherwise.
delete()
Deletes a cache entry.
public
delete(mixed $id) : bool
Parameters
- $id : mixed
-
The cache id.
Return values
bool —TRUE if the cache entry was successfully deleted, FALSE otherwise. Deleting a non-existing entry is considered successful.
deleteAll()
Deletes all cache entries in the current cache namespace.
public
deleteAll() : bool
Return values
bool —TRUE if the cache entries were successfully deleted, FALSE otherwise.
fetch()
Fetches an entry from the cache.
public
fetch(mixed $id) : mixed
Parameters
- $id : mixed
-
The id of the cache entry to fetch.
Return values
mixed —The cached data or FALSE, if no cache entry exists for the given id.
fetchMultiple()
Returns an associative array of values for keys is found in cache.
public
fetchMultiple(array<string|int, mixed> $keys) : array<string|int, mixed>
Parameters
- $keys : array<string|int, mixed>
-
Array of keys to retrieve from cache
Return values
array<string|int, mixed> —Array of retrieved values, indexed by the specified keys. Values that couldn't be retrieved are not contained in this array.
flushAll()
Flushes all cache entries, globally.
public
flushAll() : bool
Return values
bool —TRUE if the cache entries were successfully flushed, FALSE otherwise.
getNamespace()
Retrieves the namespace that prefixes all cache ids.
public
getNamespace() : string
Return values
string —getStats()
Retrieves cached information from the data store.
public
getStats() : array<string|int, mixed>|null
Return values
array<string|int, mixed>|null —An associative array with server's statistics if available, NULL otherwise.
save()
Puts data into the cache.
public
save(mixed $id, mixed $data, mixed $lifeTime) : bool
Parameters
- $id : mixed
-
The cache id.
- $data : mixed
-
The cache entry/data.
- $lifeTime : mixed
-
The lifetime in number of seconds for this cache entry. If zero (the default), the entry never expires (although it may be deleted from the cache to make place for other entries).
Return values
bool —TRUE if the entry was successfully stored in the cache, FALSE otherwise.
saveMultiple()
Returns a boolean value indicating if the operation succeeded.
public
saveMultiple(array<string|int, mixed> $keysAndValues, mixed $lifetime) : bool
Parameters
- $keysAndValues : array<string|int, mixed>
-
Array of keys and values to save in cache
- $lifetime : mixed
-
The lifetime. If != 0, sets a specific lifetime for these cache entries (0 => infinite lifeTime).
Return values
bool —TRUE if the operation was successful, FALSE if it wasn't.
setNamespace()
Sets the namespace to prefix all cache ids with.
public
setNamespace(string $namespace) : void
Parameters
- $namespace : string
Return values
void —doContains()
Tests if an entry exists in the cache.
protected
doContains(mixed $id) : bool
Parameters
- $id : mixed
-
The cache id of the entry to check for.
Return values
bool —TRUE if a cache entry exists for the given cache id, FALSE otherwise.
doDelete()
Deletes a cache entry.
protected
doDelete(mixed $id) : bool
Parameters
- $id : mixed
-
The cache id.
Return values
bool —TRUE if the cache entry was successfully deleted, FALSE otherwise.
doFetch()
Fetches an entry from the cache.
protected
doFetch(mixed $id) : mixed|false
Parameters
- $id : mixed
-
The id of the cache entry to fetch.
Return values
mixed|false —The cached data or FALSE, if no cache entry exists for the given id.
doFetchMultiple()
Default implementation of doFetchMultiple. Each driver that supports multi-get should owerwrite it.
protected
doFetchMultiple(array<string|int, mixed> $keys) : array<string|int, mixed>
Parameters
- $keys : array<string|int, mixed>
-
Array of keys to retrieve from cache
Return values
array<string|int, mixed> —Array of values retrieved for the given keys.
doFlush()
Flushes all cache entries.
protected
doFlush() : bool
Return values
bool —TRUE if the cache entries were successfully flushed, FALSE otherwise.
doGetStats()
Retrieves cached information from the data store.
protected
doGetStats() : array<string|int, mixed>|null
Return values
array<string|int, mixed>|null —An associative array with server's statistics if available, NULL otherwise.
doSave()
Puts data into the cache.
protected
doSave(mixed $id, mixed $data, mixed $lifeTime) : bool
Parameters
- $id : mixed
-
The cache id.
- $data : mixed
-
The cache entry/data.
- $lifeTime : mixed
-
The lifetime. If != 0, sets a specific lifetime for this cache entry (0 => infinite lifeTime).
Return values
bool —TRUE if the entry was successfully stored in the cache, FALSE otherwise.
doSaveMultiple()
Default implementation of doSaveMultiple. Each driver that supports multi-put should override it.
protected
doSaveMultiple(array<string|int, mixed> $keysAndValues, int $lifetime) : bool
Parameters
- $keysAndValues : array<string|int, mixed>
-
Array of keys and values to save in cache
- $lifetime : int
-
The lifetime. If != 0, sets a specific lifetime for these cache entries (0 => infinite lifeTime).
Return values
bool —TRUE if the operation was successful, FALSE if it wasn't.
getNamespaceCacheKey()
Returns the namespace cache key.
private
getNamespaceCacheKey() : string
Return values
string —getNamespacedId()
Prefixes the passed id with the configured namespace value.
private
getNamespacedId(string $id) : string
Parameters
- $id : string
-
The id to namespace.
Return values
string —The namespaced id.
getNamespaceVersion()
Returns the namespace version.
private
getNamespaceVersion() : int
Return values
int —isExpired()
Check if the document is expired.
private
isExpired(array<string|int, mixed> $document) : bool
Parameters
- $document : array<string|int, mixed>