Project

General

Profile

Actions

Bug #87566

closed

Column configuration can't be overridden by child object

Added by Alexander Schnitzler about 5 years ago. Updated over 1 year ago.

Status:
Closed
Priority:
Should have
Assignee:
-
Category:
Extbase
Target version:
-
Start date:
2019-02-04
Due date:
2019-02-04
% Done:

100%

Estimated time:
TYPO3 Version:
10
PHP Version:
7.2
Tags:
Complexity:
medium
Is Regression:
Yes
Sprint Focus:

Description

This one is a bit tricky and best explained by an example.

We have the following configuration:

config.tx_extbase.persistence.classes {
    TYPO3\CMS\Extbase\Domain\Model\BackendUser {
        mapping {
            columns {
                username.mapOnProperty = userName
            }
        }
    }
}

and the following one:

config.tx_extbase.persistence.classes {
    TYPO3\CMS\Beuser\Domain\Model\BackendUser {
        mapping {
            columns {
                username.mapOnProperty = overridden
            }
        }
    }
}

It's important to recognize the following heritage:

TYPO3\CMS\Beuser\Domain\Model\BackendUser extends TYPO3\CMS\Extbase\Domain\Model\BackendUser

The issue:
When a datamap is created, the configuration of the child object TYPO3\CMS\Beuser\Domain\Model\BackendUser gets merged with the one of TYPO3\CMS\Extbase\Domain\Model\BackendUser but in a way that the configuration of the child object does not override the one of the parent.

The property of TYPO3\CMS\Beuser\Domain\Model\BackendUser being mapped on field username should be overridden, instead it's the one of the parent (userName).

However, adding new columns works just fine.


Related issues 1 (0 open1 closed)

Follows TYPO3 Core - Task #87623: Replace config.persistence.classes typoscriptClosed2019-02-02

Actions
Actions #1

Updated by Alexander Schnitzler about 5 years ago

  • Description updated (diff)
Actions #2

Updated by Mathias Brodala over 2 years ago

  • Is Regression set to Yes
Actions #3

Updated by Mathias Brodala over 2 years ago

  • Due date set to 2019-02-04
  • Start date changed from 2019-01-28 to 2019-02-04
  • Follows Task #87623: Replace config.persistence.classes typoscript added
Actions #4

Updated by Claus Harup over 2 years ago

This is working for me in TYPO3 v. 10:

\typo3\sysext\extbase\Classes\Persistence\ClassesConfigurationFactory.php

....
foreach ($relevantParentClasses as $currentClassName) {
  if (null === $properties = $classes[$currentClassName]['properties'] ?? null) {
    continue;
  }

  //ArrayUtility::mergeRecursiveWithOverrule($classes[$className]['properties'], $properties, true, false);

  /*
  * Outcommenting the line above and adding the lines below
  * to override the naming of properties when extending models
  */
  ArrayUtility::mergeRecursiveWithOverrule($properties, $classes[$className]['properties'], true, false);
  $classes[$className]['properties'] = $properties;
}
....

.... this way properties are assigned to the child object's databasefield if the propertyname colides with any parent class.

Actions #5

Updated by Gerrit Code Review over 2 years ago

  • Status changed from New to Under Review

Patch set 1 for branch main of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/c/Packages/TYPO3.CMS/+/73040

Actions #6

Updated by Gerrit Code Review about 2 years ago

Patch set 2 for branch main of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/c/Packages/TYPO3.CMS/+/73040

Actions #7

Updated by Gerrit Code Review about 2 years ago

Patch set 3 for branch main of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/c/Packages/TYPO3.CMS/+/73040

Actions #8

Updated by Gerrit Code Review about 2 years ago

Patch set 4 for branch main of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/c/Packages/TYPO3.CMS/+/73040

Actions #9

Updated by Gerrit Code Review about 2 years ago

Patch set 1 for branch 11.5 of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/c/Packages/TYPO3.CMS/+/73086

Actions #10

Updated by Gerrit Code Review about 2 years ago

Patch set 1 for branch 10.4 of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/c/Packages/TYPO3.CMS/+/73087

Actions #11

Updated by Gerrit Code Review about 2 years ago

Patch set 2 for branch 10.4 of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/c/Packages/TYPO3.CMS/+/73087

Actions #12

Updated by Benni Mack about 2 years ago

  • Status changed from Under Review to Resolved
  • % Done changed from 0 to 100
Actions #13

Updated by Benni Mack over 1 year ago

  • Status changed from Resolved to Closed
Actions

Also available in: Atom PDF