public static function mergeConfiguration(DocumentConfiguration
$baseConfig, DocumentBaseConfigEntity|DocumentConfiguration|array
$additionalConfig): DocumentConfiguration
{ $additionalConfigArray =
[];
if (\
is_array($additionalConfig)) { $additionalConfigArray =
$additionalConfig;
} elseif (\
is_object($additionalConfig)) { $additionalConfigArray =
$additionalConfig->
jsonSerialize();
} $additionalConfigArray = self::
cleanConfig($additionalConfigArray);
foreach ($additionalConfigArray as $key =>
$value) { if ($value !== null
) { if ($key === 'custom' && \
is_array($value)) { $baseConfig->
__set('custom',
array_merge((array) $baseConfig->
__get('custom'
),
$value));
} elseif (str_starts_with($key, 'custom.'
)) { $customKey =
mb_substr($key, 7
);
$baseConfig->
__set('custom',
array_merge((array) $baseConfig->
__get('custom'
),
[$customKey =>
$value]));
} else { $baseConfig->
__set($key,
$value);
} }