class InstallerThemeEngineExtensionList extends ThemeEngineExtensionList (View source)

Overrides the theme engine extension list to have a static cache.

Traits

Provides common functionality for the extension list classes.

Properties

protected string $type

The type of the extension: "module", "theme" or "profile".

from  ExtensionList
protected string $root

The app root.

from  ExtensionList
protected CacheBackendInterface $cache

The cache.

from  ExtensionList
protected $defaults {@inheritdoc} from  ThemeEngineExtensionList
protected InfoParserInterface $infoParser

The info parser.

from  ExtensionList
protected ModuleHandlerInterface $moduleHandler

The module handler.

from  ExtensionList
protected Extension[]|null $extensions

The cached extensions.

from  ExtensionList
protected array[]|null $extensionInfo

Static caching for extension info.

from  ExtensionList
protected string[]|null $pathNames

A list of extension folder names keyed by extension name.

from  ExtensionList
protected string[] internal $addedPathNames

A list of extension folder names directly added in code (not discovered).

from  ExtensionList
protected StateInterface $state

The state store.

from  ExtensionList
protected string $installProfile

The install profile used by the site.

from  ExtensionList
static protected string[] internal $staticAddedPathNames

Static version of the added file names during the installer.

from  ExtensionListTrait

Methods

__construct(string $root, string $type, CacheBackendInterface $cache, InfoParserInterface $info_parser, ModuleHandlerInterface $module_handler, StateInterface $state, string $install_profile)

Constructs a new instance.

getExtensionDiscovery()

Returns the extension discovery.

$this
reset()

Resets the stored extension list.

string
getListCacheId()

Returns the extension list cache ID.

string
getInfoCacheId()

Returns the extension info cache ID.

string
getPathnamesCacheId()

Returns the extension filenames cache ID.

bool
exists(string $extension_name)

Determines if an extension exists in the filesystem.

string
getName(string $extension_name)

Returns the human-readable name of the extension.

get(string $extension_name)

Returns a single extension.

getList()

Returns all available extensions.

doScanExtensions()

Scans the available extensions.

doList()

Builds the list of extensions.

array
getExtensionInfo(string $extension_name)

Returns information about a specified extension.

array[]
getAllAvailableInfo()

Returns an array of info files information of available extensions.

string[]
getInstalledExtensionNames()

Returns a list of machine names of installed extensions.

array[]
getAllInstalledInfo()

Returns an array of info files information of installed extensions.

array[]
recalculateInfo()

Generates the information from .info.yml files for extensions of this type.

string[]
getPathnames()

Returns a list of extension file paths keyed by machine name.

string[]
recalculatePathnames()

Generates a sorted list of .info.yml file locations for all extensions.

setPathname($extension_name, $pathname)

No description

getPathname($extension_name)

No description

string
getPath(string $extension_name)

Gets the path to an extension of a specific type (module, theme, etc.).

array
createExtensionInfo(Extension $extension)

Creates the info value for an extension object.

bool
checkIncompatibility(string $name)

Tests the compatibility of an extension.

static int
sortByName(Extension $a, Extension $b)

Array sorting callback; sorts extensions by their name.

Details

__construct(string $root, string $type, CacheBackendInterface $cache, InfoParserInterface $info_parser, ModuleHandlerInterface $module_handler, StateInterface $state, string $install_profile)

Constructs a new instance.

Parameters

string $root

The app root.

string $type

The extension type.

CacheBackendInterface $cache

The cache.

InfoParserInterface $info_parser

The info parser.

ModuleHandlerInterface $module_handler

The module handler.

StateInterface $state

The state.

string $install_profile

The install profile used by the site.

protected ExtensionDiscovery getExtensionDiscovery()

Returns the extension discovery.

Return Value

ExtensionDiscovery

$this reset()

Resets the stored extension list.

We don't reset statically added filenames, as it is a static cache which logically can't change. This is done for performance reasons of the installer.

Return Value

$this

protected string getListCacheId()

Returns the extension list cache ID.

Return Value

string

The list cache ID.

protected string getInfoCacheId()

Returns the extension info cache ID.

Return Value

string

The info cache ID.

protected string getPathnamesCacheId()

Returns the extension filenames cache ID.

Return Value

string

The filename cache ID.

bool exists(string $extension_name)

Determines if an extension exists in the filesystem.

Parameters

string $extension_name

The machine name of the extension.

Return Value

bool

TRUE if the extension exists (regardless installed or not) and FALSE if not.

string getName(string $extension_name)

Returns the human-readable name of the extension.

Parameters

string $extension_name

The machine name of the extension.

Return Value

string

The human-readable name of the extension.

Exceptions

UnknownExtensionException

Extension get(string $extension_name)

Returns a single extension.

Parameters

string $extension_name

The machine name of the extension.

Return Value

Extension

A processed extension object for the extension with the specified machine name.

Exceptions

UnknownExtensionException

Extension[] getList()

Returns all available extensions.

Return Value

Extension[]

Processed extension objects, keyed by machine name.

protected Extension[] doScanExtensions()

Scans the available extensions.

Overriding this method gives other code the chance to add additional extensions to this raw listing.

Return Value

Extension[]

Unprocessed extension objects, keyed by machine name.

protected Extension[] doList()

Builds the list of extensions.

Return Value

Extension[]

Processed extension objects, keyed by machine name.

Exceptions

InfoParserException

array getExtensionInfo(string $extension_name)

Returns information about a specified extension.

This function returns the contents of the .info.yml file for the specified extension.

Parameters

string $extension_name

The name of an extension whose information shall be returned.

Return Value

array

An associative array of extension information.

Exceptions

UnknownExtensionException

array[] getAllAvailableInfo()

Returns an array of info files information of available extensions.

This function returns the processed contents (with added defaults) of the .info.yml files.

Return Value

array[]

An associative array of extension information arrays, keyed by extension name.

protected string[] getInstalledExtensionNames()

Returns a list of machine names of installed extensions.

Return Value

string[]

The machine names of all installed extensions of this type.

array[] getAllInstalledInfo()

Returns an array of info files information of installed extensions.

This function returns the processed contents (with added defaults) of the .info.yml files.

Return Value

array[]

An associative array of extension information arrays, keyed by extension name.

protected array[] recalculateInfo()

Generates the information from .info.yml files for extensions of this type.

Return Value

array[]

An array of arrays of .info.yml entries keyed by the machine name.

string[] getPathnames()

Returns a list of extension file paths keyed by machine name.

Return Value

string[]

protected string[] recalculatePathnames()

Generates a sorted list of .info.yml file locations for all extensions.

Return Value

string[]

An array of .info.yml file locations keyed by the extension machine name.

setPathname($extension_name, $pathname)

No description

Parameters

$extension_name
$pathname

See also

ExtensionList::setPathname

getPathname($extension_name)

No description

Parameters

$extension_name

See also

ExtensionList::getPathname

string getPath(string $extension_name)

Gets the path to an extension of a specific type (module, theme, etc.).

The path is the directory in which the .info file is located. This name is coming from \SplFileInfo.

Parameters

string $extension_name

The machine name of the extension for which the path is requested.

Return Value

string

The Drupal-root-relative path to the specified extension.

Exceptions

UnknownExtensionException

protected array createExtensionInfo(Extension $extension)

Creates the info value for an extension object.

Parameters

Extension $extension

The extension whose info is to be altered.

Return Value

array

The extension info array.

bool checkIncompatibility(string $name)

Tests the compatibility of an extension.

Parameters

string $name

The extension name to check.

Return Value

bool

TRUE if the extension is incompatible and FALSE if not.

Exceptions

UnknownExtensionException

static int sortByName(Extension $a, Extension $b)

Array sorting callback; sorts extensions by their name.

Parameters

Extension $a

The first extension to compare.

Extension $b

The second extension to compare.

Return Value

int

Less than 0 if $a is less than $b, more than 0 if $a is greater than $b, and 0 if they are equal.