CachedStorage
class CachedStorage implements StorageInterface, StorageCacheInterface (View source)
Defines the cached storage.
The class gets another storage and a cache backend injected. It reads from the cache and delegates the read to the storage on a cache miss. It also handles cache invalidation.
Traits
Provides dependency injection friendly methods for serialization.
Properties
| protected array | $_serviceIds | An array of service IDs keyed by property name used for serialization. |
from DependencySerializationTrait |
| protected array | $_entityStorages | An array of entity type IDs keyed by the property name of their storages. |
from DependencySerializationTrait |
| protected StorageInterface | $storage | The configuration storage to be cached. |
|
| protected CacheBackendInterface | $cache | The instantiated Cache backend. |
|
| protected array | $findByPrefixCache | List of listAll() prefixes with their results. |
Methods
Constructs a new CachedStorage.
Returns whether a configuration object exists.
Reads configuration data from the storage.
Reads configuration data from the storage.
Writes configuration data to the storage.
Deletes a configuration object from the storage.
Renames a configuration object in the storage.
Encodes configuration data into the storage-specific format.
Decodes configuration data from the storage-specific format.
Gets configuration object names starting with a given prefix.
Finds configuration object names starting with a given prefix.
Deletes configuration objects whose names start with a given prefix.
Clears the static list cache.
Creates a collection on the storage.
Gets the existing collections.
Gets the name of the current collection the storage is using.
Returns a cache key for a configuration name using the collection.
Returns a cache key map for an array of configuration names.
Returns a cache ID prefix to use for the collection.
Details
__sleep()
{@inheritdoc}
__wakeup()
{@inheritdoc}
__construct(StorageInterface $storage, CacheBackendInterface $cache)
Constructs a new CachedStorage.
bool
exists(string $name)
Returns whether a configuration object exists.
array|bool
read(string $name)
Reads configuration data from the storage.
array
readMultiple(array $names)
Reads configuration data from the storage.
bool
write(string $name, array $data)
Writes configuration data to the storage.
bool
delete(string $name)
Deletes a configuration object from the storage.
bool
rename(string $name, string $new_name)
Renames a configuration object in the storage.
string
encode(array $data)
Encodes configuration data into the storage-specific format.
This is a publicly accessible static method to allow for alternative usages in data conversion scripts and also tests.
array
decode(string $raw)
Decodes configuration data from the storage-specific format.
This is a publicly accessible static method to allow for alternative usages in data conversion scripts and also tests.
array
listAll(string $prefix = '')
Gets configuration object names starting with a given prefix.
Given the following configuration objects:
- node.type.article
- node.type.page
Passing the prefix 'node.type.' will return an array containing the above names.
protected array
findByPrefix(string $prefix)
Finds configuration object names starting with a given prefix.
Given the following configuration objects:
- node.type.article
- node.type.page
Passing the prefix 'node.type.' will return an array containing the above names.
bool
deleteAll(string $prefix = '')
Deletes configuration objects whose names start with a given prefix.
Given the following configuration object names:
- node.type.article
- node.type.page
Passing the prefix 'node.type.' will delete the above configuration objects.
resetListCache()
Clears the static list cache.
$this
createCollection(string $collection)
Creates a collection on the storage.
A configuration storage can contain multiple sets of configuration objects in partitioned collections. The collection name identifies the current collection used.
Implementations of this method must provide a new instance to avoid side effects caused by the fact that Config objects have their storage injected.
array
getAllCollectionNames()
Gets the existing collections.
A configuration storage can contain multiple sets of configuration objects in partitioned collections. The collection key name identifies the current collection used.
string
getCollectionName()
Gets the name of the current collection the storage is using.
protected string
getCacheKey(string $name)
Returns a cache key for a configuration name using the collection.
protected array
getCacheKeys(array $names)
Returns a cache key map for an array of configuration names.
protected string
getCollectionPrefix()
Returns a cache ID prefix to use for the collection.