From 1ab5d3769d3042bfcfa3b7e9e0fb11e4e222ca96 Mon Sep 17 00:00:00 2001 From: Torben Dannhauer Date: Fri, 2 Oct 2026 08:24:14 +0200 Subject: [PATCH] fix(core): import LanguageContextSelector in Nlsconfig Nlsconfig lives in Horde\Core\Registry and implemented LanguageContextSelector without importing it, so PHP looked up Horde\Core\Registry\LanguageContextSelector and the injector could not create LanguageContext. Read the Accept-Language header from the promoted constructor property, and construct Nlsconfig in the unit test with the current argument order. --- src/Registry/Nlsconfig.php | 5 +++-- test/Unit/Registry/NlsconfigTest.php | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/Registry/Nlsconfig.php b/src/Registry/Nlsconfig.php index 6ad11eac..4c7146c9 100644 --- a/src/Registry/Nlsconfig.php +++ b/src/Registry/Nlsconfig.php @@ -18,6 +18,7 @@ use Horde\Core\Config\BackendConfigLoader; use Horde\Core\LanguageContext; +use Horde\Core\LanguageContextSelector; use Horde\Core\Session\SessionAccess; use Horde_Prefs; @@ -87,10 +88,10 @@ public function preferredLang(?string $lang = null): string return basename($lang); } - if (!empty($serverEnvironment)) { + if (!empty($this->serverEnvironment)) { $partialLang = null; - foreach (explode(',', $serverEnvironment) as $browserLang) { + foreach (explode(',', $this->serverEnvironment) as $browserLang) { if (($pos = strpos($browserLang, ';')) !== false) { $browserLang = substr($browserLang, 0, $pos); } diff --git a/test/Unit/Registry/NlsconfigTest.php b/test/Unit/Registry/NlsconfigTest.php index 29a1dea8..0339635e 100644 --- a/test/Unit/Registry/NlsconfigTest.php +++ b/test/Unit/Registry/NlsconfigTest.php @@ -81,7 +81,7 @@ protected function tearDown(): void private function makeNlsconfig(): Nlsconfig { - return new Nlsconfig($this->sessionAccessor, $this->configLoader); + return new Nlsconfig($this->configLoader, null, $this->sessionAccessor); } public function testImplementsLanguageContext(): void