class InstallStorage extends FileStorage (View source)

Storage used by the Drupal installer.

This storage performs a full filesystem scan to discover all available extensions and reads from all default config directories that exist.

This special implementation MUST NOT be used anywhere else than the early installer environment.

Constants

CONFIG_INSTALL_DIRECTORY

Extension sub-directory containing default configuration for installation.

CONFIG_OPTIONAL_DIRECTORY

Extension sub-directory containing optional configuration for installation.

CONFIG_SCHEMA_DIRECTORY

Extension sub-directory containing configuration schema.

Properties

protected string $collection

The storage collection.

from  FileStorage
protected string $directory

The directory to scan in each extension to scan for files.

protected FileCacheInterface $fileCache

The file cache object.

from  FileStorage
protected array $folders

Folder map indexed by configuration name.

Methods

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

Constructs an InstallStorage object.

string
getFilePath($name)

Overrides Drupal\Core\Config\FileStorage::getFilePath().

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)

Overrides Drupal\Core\Config\FileStorage::write().

bool
delete(string $name)

Overrides Drupal\Core\Config\FileStorage::delete().

bool
rename(string $name, string $new_name)

Overrides Drupal\Core\Config\FileStorage::rename().

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 = '')

Overrides Drupal\Core\Config\FileStorage::deleteAll().

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

array
getAllFolders()

Returns a map of all config object names and their folders.

array
getComponentNames(array $list)

Get all configuration names and folders for a list of modules or themes.

array
getCoreNames()

Get all configuration names and folders for Drupal core.

string
getComponentFolder(Extension $extension)

Get folder inside each component that contains the files.

string
getCoreFolder()

Get folder inside Drupal core that contains the files.

reset()

Resets the static cache.

Details

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

Constructs an InstallStorage object.

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)

Overrides Drupal\Core\Config\FileStorage::getFilePath().

Returns the path to the configuration file.

Determines the owner and path to the default configuration file of a requested config object name located in the installation profile, a module, or a theme (in this order).

Improve this when figuring out how we want to handle configuration in installation profiles. For instance, a config object actually has to be searched in the profile first (whereas the profile is never the owner); only afterwards check for a corresponding module or theme.

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)

Overrides Drupal\Core\Config\FileStorage::write().

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)

Overrides Drupal\Core\Config\FileStorage::delete().

Parameters

string $name

The name of a configuration object to delete.

Return Value

bool

TRUE on success, FALSE otherwise.

Exceptions

StorageException

bool rename(string $name, string $new_name)

Overrides Drupal\Core\Config\FileStorage::rename().

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.

Exceptions

StorageException

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 = '')

Overrides Drupal\Core\Config\FileStorage::deleteAll().

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.

Exceptions

StorageException

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

protected array getAllFolders()

Returns a map of all config object names and their folders.

Return Value

array

An array mapping config object names with directories.

array getComponentNames(array $list)

Get all configuration names and folders for a list of modules or themes.

Parameters

array $list

An associative array of Extension objects, keyed by extension name.

Return Value

array

Folders indexed by configuration name.

array getCoreNames()

Get all configuration names and folders for Drupal core.

Return Value

array

Folders indexed by configuration name.

protected string getComponentFolder(Extension $extension)

Get folder inside each component that contains the files.

Parameters

Extension $extension

The Extension object for the component.

Return Value

string

The configuration folder name for this component.

protected string getCoreFolder()

Get folder inside Drupal core that contains the files.

Return Value

string

The configuration folder name for core.

reset()

Resets the static cache.