ManagedStorage
final class ManagedStorage implements StorageInterface (View source)
The managed storage defers all the storage method calls to the manager.
The reason for deferring all the method calls is that the storage interface is the API but we potentially need to do an expensive transformation before the storage can be used so we can't do it in the constructor but we also don't know which method is called first.
This class is not meant to be extended and is final to make sure the assumptions that the storage is retrieved only once are upheld.
Properties
| protected StorageInterface | $storage | The decorated storage. |
|
| protected StorageManagerInterface | $manager | The storage manager to get the storage to decorate. |
Methods
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.
Deletes configuration objects whose names start with a given prefix.
Creates a collection on the storage.
Gets the existing collections.
Gets the name of the current collection the storage is using.
Get the decorated storage from the manager if necessary.
Details
__construct(StorageManagerInterface $manager)
ManagedStorage constructor.
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.
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.
$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 StorageInterface
getStorage()
Get the decorated storage from the manager if necessary.