Skip to content

Commit 47012e4

Browse files
Merge pull request #18892 from MauricioFauth/language-manager-refactor
Simplify LanguageManager::availableLanguages() conditions
2 parents ab48ff8 + eeb1964 commit 47012e4

2 files changed

Lines changed: 10 additions & 25 deletions

File tree

phpstan-baseline.neon

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9865,11 +9865,6 @@ parameters:
98659865
count: 1
98669866
path: src/LanguageManager.php
98679867

9868-
-
9869-
message: "#^Unsafe access to private property PhpMyAdmin\\\\LanguageManager\\:\\:\\$languageData through static\\:\\:\\.$#"
9870-
count: 2
9871-
path: src/LanguageManager.php
9872-
98739868
-
98749869
message: "#^Binary operation \"\\+\" between int\\|string\\|null and int\\<0, max\\> results in an error\\.$#"
98759870
count: 1

src/LanguageManager.php

Lines changed: 10 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -711,7 +711,7 @@ class LanguageManager
711711
/** @var mixed[] */
712712
private array $availableLocales = [];
713713

714-
/** @var Language[] */
714+
/** @var array<string, Language> */
715715
private array $availableLanguages = [];
716716

717717
private bool $langFailedConfig = false;
@@ -810,28 +810,18 @@ public function hasChoice(): bool
810810
/**
811811
* Returns (cached) list of all available languages
812812
*
813-
* @return Language[] array of Language objects
813+
* @return array<string, Language>
814814
*/
815815
public function availableLanguages(): array
816816
{
817-
if ($this->availableLanguages === []) {
818-
$this->availableLanguages = [];
819-
820-
foreach ($this->availableLocales() as $lang) {
821-
$lang = strtolower($lang);
822-
if (isset(static::$languageData[$lang])) {
823-
$data = static::$languageData[$lang];
824-
$this->availableLanguages[$lang] = new Language($data[0], $data[1], $data[2], $data[3], $data[4]);
825-
} else {
826-
$this->availableLanguages[$lang] = new Language(
827-
$lang,
828-
ucfirst($lang),
829-
ucfirst($lang),
830-
$lang,
831-
'',
832-
);
833-
}
834-
}
817+
if ($this->availableLanguages !== []) {
818+
return $this->availableLanguages;
819+
}
820+
821+
foreach ($this->availableLocales() as $lang) {
822+
$lang = strtolower($lang);
823+
$data = self::$languageData[$lang] ?? [$lang, ucfirst($lang), ucfirst($lang), $lang, ''];
824+
$this->availableLanguages[$lang] = new Language(...$data);
835825
}
836826

837827
return $this->availableLanguages;

0 commit comments

Comments
 (0)