class ExtensionMap
Hierarchy
- class \mglaman\PHPStanDrupal\Drupal\ExtensionMap
Expanded class hierarchy of ExtensionMap
1 file declares its use of ExtensionMap
- LoadIncludeBase.php in vendor/
mglaman/ phpstan-drupal/ src/ Rules/ Drupal/ LoadIncludeBase.php
File
-
vendor/
mglaman/ phpstan-drupal/ src/ Drupal/ ExtensionMap.php, line 9
Namespace
mglaman\PHPStanDrupal\DrupalView source
final class ExtensionMap {
/** @var array<string, Extension> */
private static $modules = [];
/** @var array<string, Extension> */
private static $themes = [];
/** @var array<string, Extension> */
private static $profiles = [];
/**
* @return Extension[]
*/
public function getModules() : array {
return self::$modules;
}
public function getModule(string $name) : ?Extension {
return self::$modules[$name] ?? null;
}
/**
* @return Extension[]
*/
public function getThemes() : array {
return self::$themes;
}
public function getTheme(string $name) : ?Extension {
return self::$themes[$name] ?? null;
}
/**
* @return Extension[]
*/
public function getProfiles() : array {
return self::$profiles;
}
public function getProfile(string $name) : ?Extension {
return self::$profiles[$name] ?? null;
}
/**
* @param array<int, Extension> $modules
* @param array<int, Extension> $themes
* @param array<int, Extension> $profiles
*/
public function setExtensions(array $modules, array $themes, array $profiles) : void {
self::$modules = self::keyByExtensionName($modules);
self::$themes = self::keyByExtensionName($themes);
self::$profiles = self::keyByExtensionName($profiles);
}
/**
* @param array<int, Extension> $extensions
* @return array<string, Extension>
*/
private static function keyByExtensionName(array $extensions) : array {
// PHP 7.4 returns array|false, PHP 8.0 only returns an array.
// Make PHPStan happy. When PHP 7.4 is dropped, reduce to a single
// return.
$combined = array_combine(array_map(static function (Extension $extension) {
return $extension->getName();
}, $extensions), $extensions);
// @phpstan-ignore-next-line
assert(is_array($combined));
return $combined;
}
}
Members
Title Sort descending | Modifiers | Object type | Summary |
---|---|---|---|
ExtensionMap::$modules | private static | property | @var array<string, Extension> |
ExtensionMap::$profiles | private static | property | @var array<string, Extension> |
ExtensionMap::$themes | private static | property | @var array<string, Extension> |
ExtensionMap::getModule | public | function | |
ExtensionMap::getModules | public | function | |
ExtensionMap::getProfile | public | function | |
ExtensionMap::getProfiles | public | function | |
ExtensionMap::getTheme | public | function | |
ExtensionMap::getThemes | public | function | |
ExtensionMap::keyByExtensionName | private static | function | |
ExtensionMap::setExtensions | public | function |