Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. ExtensionMap.php

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\Drupal
View 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&lt;string, Extension&gt;
ExtensionMap::$profiles private static property @var array&lt;string, Extension&gt;
ExtensionMap::$themes private static property @var array&lt;string, Extension&gt;
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

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal