Skip to content
Snippets Groups Projects
Commit af23996c authored by Benni Mack's avatar Benni Mack
Browse files

[BUGFIX] Replace properties correctly in Extbase Persistence Class overrides

Due to a bug, the class properties did not override
properly using alternative names as the TYPO3-internal
"mergeRecursiveWithOverrule" was used in the wrong order.

This patch now uses "array_replace_recursive" and adds the
child properties at the very end.

Resolves: #87566
Releases: main, 11.5, 10.4
Change-Id: I91799cfb6c2effb8440bd099502ae801c9a69d15
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/73086


Tested-by: default avatarcore-ci <typo3@b13.com>
Tested-by: default avatarBenni Mack <benni@typo3.org>
Reviewed-by: default avatarBenni Mack <benni@typo3.org>
parent 06aca1a2
Branches
Tags
No related merge requests found
......@@ -111,7 +111,8 @@ final class ClassesConfigurationFactory
continue;
}
ArrayUtility::mergeRecursiveWithOverrule($classes[$className]['properties'], $properties, true, false);
// Merge new properties over existing ones.
$classes[$className]['properties'] = array_replace_recursive($properties, $classes[$className]['properties'] ?? []);
}
}
......
......@@ -82,9 +82,7 @@ class ClassesConfigurationFactoryTest extends UnitTestCase
B::class => [
'properties' => [
'propertiesFromA' => [
// todo: this is flawed, we'd actually expect field_name_z here
// todo: see https://forge.typo3.org/issues/87566
'fieldName' => 'field_name_a',
'fieldName' => 'field_name_z',
],
'propertiesFromB' => [
'fieldName' => 'field_name_b',
......@@ -93,15 +91,15 @@ class ClassesConfigurationFactoryTest extends UnitTestCase
],
C::class => [
'properties' => [
'columnNameC' => [
'fieldName' => 'field_name_c',
],
'propertiesFromA' => [
'fieldName' => 'field_name_a',
'fieldName' => 'field_name_z',
],
'propertiesFromB' => [
'fieldName' => 'field_name_b',
],
'columnNameC' => [
'fieldName' => 'field_name_c',
],
],
],
],
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment