diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon index 212724343a..79e444d9d5 100644 --- a/phpstan-baseline.neon +++ b/phpstan-baseline.neon @@ -9865,11 +9865,6 @@ parameters: count: 1 path: src/LanguageManager.php - - - message: "#^Unsafe access to private property PhpMyAdmin\\\\LanguageManager\\:\\:\\$languageData through static\\:\\:\\.$#" - count: 2 - path: src/LanguageManager.php - - message: "#^Binary operation \"\\+\" between int\\|string\\|null and int\\<0, max\\> results in an error\\.$#" count: 1 diff --git a/src/LanguageManager.php b/src/LanguageManager.php index 62bfd4f193..360176214e 100644 --- a/src/LanguageManager.php +++ b/src/LanguageManager.php @@ -711,7 +711,7 @@ class LanguageManager /** @var mixed[] */ private array $availableLocales = []; - /** @var Language[] */ + /** @var array */ private array $availableLanguages = []; private bool $langFailedConfig = false; @@ -810,28 +810,18 @@ class LanguageManager /** * Returns (cached) list of all available languages * - * @return Language[] array of Language objects + * @return array */ public function availableLanguages(): array { - if ($this->availableLanguages === []) { - $this->availableLanguages = []; + if ($this->availableLanguages !== []) { + return $this->availableLanguages; + } - foreach ($this->availableLocales() as $lang) { - $lang = strtolower($lang); - if (isset(static::$languageData[$lang])) { - $data = static::$languageData[$lang]; - $this->availableLanguages[$lang] = new Language($data[0], $data[1], $data[2], $data[3], $data[4]); - } else { - $this->availableLanguages[$lang] = new Language( - $lang, - ucfirst($lang), - ucfirst($lang), - $lang, - '', - ); - } - } + foreach ($this->availableLocales() as $lang) { + $lang = strtolower($lang); + $data = self::$languageData[$lang] ?? [$lang, ucfirst($lang), ucfirst($lang), $lang, '']; + $this->availableLanguages[$lang] = new Language(...$data); } return $this->availableLanguages;