This commit is contained in:
team 1
2026-05-05 20:10:00 +02:00
parent a04d371ef3
commit 0771614609
3 changed files with 140 additions and 84 deletions

View File

@@ -46,21 +46,31 @@ final class DomainVocabularyConfig
return $this->uniqueStringListMap($fallback);
}
$out = [];
foreach ($value as $key => $items) {
if (!is_scalar($key)) {
continue;
}
$cleanKey = trim((string) $key);
$cleanItems = $this->stringListFromValue($items);
if ($cleanKey !== '' && $cleanItems !== []) {
$out[$cleanKey] = $cleanItems;
}
}
$out = $this->stringListMapWithAliases($value);
return $out !== [] ? $out : $this->uniqueStringListMap($fallback);
}
/** @return array<string, string[]> */
private function stringListMapWithAliases(array $value): array
{
$values = $this->uniqueStringListMap(is_array($value['values'] ?? null) ? $value['values'] : []);
$aliases = $this->uniqueStringMap(is_array($value['aliases'] ?? null) ? $value['aliases'] : []);
if ($values !== [] && $aliases !== []) {
$out = [];
foreach ($aliases as $alias => $valueKey) {
if (isset($values[$valueKey])) {
$out[$alias] = $values[$valueKey];
}
}
return $out;
}
return $this->uniqueStringListMap($value);
}
/** @return array<string, string> */
public function stringMap(string $path, array $fallback = []): array
{