class FileStorage implements StorageInterface (View source)

Defines the file storage.

Properties

protected string $collection

The storage collection.

protected string $directory

The filesystem path for configuration objects.

protected FileCacheInterface $fileCache

The file cache object.

Methods

__construct(string $directory, string $collection = StorageInterface::DEFAULT_COLLECTION)

Constructs a new FileStorage.

string
getFilePath($name)

Returns the path to the configuration file.

static string
getFileExtension()

Returns the file extension used by the file storage for all configuration files.

ensureStorage()

Check if the directory exists and create it if not.

bool
exists(string $name)

Returns whether a configuration object exists.

array|bool
read(string $name)

Implements Drupal\Core\Config\StorageInterface::read().

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.

array
decode(string $raw)

Decodes configuration data from the storage-specific format.

array
listAll(string $prefix = '')

Gets configuration object names starting with a given prefix.

bool
deleteAll(string $prefix = '')

Deletes configuration objects whose names start with a given prefix.

$this
createCollection(string $collection)

Creates a collection on the storage.

string
getCollectionName()

Gets the name of the current collection the storage is using.

array
getAllCollectionNames()

Gets the existing collections.

array
getAllCollectionNamesHelper(string $directory)

Helper function for getAllCollectionNames().

string
getCollectionDirectory()

Gets the directory for the collection.

Details

__construct(string $directory, string $collection = StorageInterface::DEFAULT_COLLECTION)

Constructs a new FileStorage.

Parameters

string $directory

A directory path to use for reading and writing of configuration files.

string $collection

(optional) The collection to store configuration in. Defaults to the default collection.

string getFilePath($name)

Returns the path to the configuration file.

Parameters

$name

Return Value

string

The path to the configuration file.

static string getFileExtension()

Returns the file extension used by the file storage for all configuration files.

Return Value

string

The file extension.

protected ensureStorage()

Check if the directory exists and create it if not.

bool exists(string $name)

Returns whether a configuration object exists.

Parameters

string $name

The name of a configuration object to test.

Return Value

bool

TRUE if the configuration object exists, FALSE otherwise.

array|bool read(string $name)

Implements Drupal\Core\Config\StorageInterface::read().

Parameters

string $name

The name of a configuration object to load.

Return Value

array|bool

The configuration data stored for the configuration object name. If no configuration data exists for the given name, FALSE is returned.

Exceptions

UnsupportedDataTypeConfigException

array readMultiple(array $names)

Reads configuration data from the storage.

Parameters

array $names

List of names of the configuration objects to load.

Return Value

array

A list of the configuration data stored for the configuration object name that could be loaded for the passed list of names.

bool write(string $name, array $data)

Writes configuration data to the storage.

Parameters

string $name

The name of a configuration object to save.

array $data

The configuration data to write.

Return Value

bool

TRUE on success, FALSE in case of an error.

Exceptions

StorageException

bool delete(string $name)

Deletes a configuration object from the storage.

Parameters

string $name

The name of a configuration object to delete.

Return Value

bool

TRUE on success, FALSE otherwise.

bool rename(string $name, string $new_name)

Renames a configuration object in the storage.

Parameters

string $name

The name of a configuration object to rename.

string $new_name

The new name of a configuration object.

Return Value

bool

TRUE on success, FALSE otherwise.

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.

Parameters

array $data

The configuration data to encode.

Return Value

string

The encoded configuration data.

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.

Parameters

string $raw

The raw configuration data string to decode.

Return Value

array

The decoded configuration data as an associative array.

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.

Parameters

string $prefix

(optional) The prefix to search for. If omitted, all configuration object names that exist are returned.

Return Value

array

An array containing matching configuration object 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.

Parameters

string $prefix

(optional) The prefix to search for. If omitted, all configuration objects that exist will be deleted.

Return Value

bool

TRUE on success, FALSE otherwise.

$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.

Parameters

string $collection

The collection name. Valid collection names conform to the following regex [a-zA-Z_.]. A storage does not need to have a collection set. However, if a collection is set, then storage should use it to store configuration in a way that allows retrieval of configuration for a particular collection.

Return Value

$this

A new instance of the storage backend with the collection set.

string getCollectionName()

Gets the name of the current collection the storage is using.

Return Value

string

The current collection name.

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.

Return Value

array

An array of existing collection names.

protected array getAllCollectionNamesHelper(string $directory)

Helper function for getAllCollectionNames().

If the file storage has the following subdirectory structure: ./another_collection/one ./another_collection/two ./collection/sub/one ./collection/sub/two this function will return:

Parameters

string $directory

The directory to check for sub directories. This allows this function to be used recursively to discover all the collections in the storage. It is the responsibility of the caller to ensure the directory exists.

Return Value

array

A list of collection names contained within the provided directory.

protected string getCollectionDirectory()

Gets the directory for the collection.

Return Value

string

The directory for the collection.