• Christian Kuhn's avatar
    [TASK] Deprecate generic extbase domain classes · 3c78adc6
    Christian Kuhn authored
    Extbase provides a couple of generic domain repositories
    and models, especially frontend / backend users and
    groups. Those are flawed by design:
    
    The main issue is that domain models have to be specific
    for the domain they are used in. By definition, a generic,
    opinionated model can't be "correct" since the domain
    it is used in, is unique: It might be that a backend user
    email has to be set and the domain does not model
    anything but email and firstname?
    
    Many usages don't need backend groups attached to a
    backend user model at all, or if they need them, then
    maybe in a recursive presentation, or a specific order
    or something similar. Having a default group resolution
    is thus at least misleading, if not wrong, and can be a
    performance issue on top.
    
    A generic model can never foresee its usages. The existing
    models thus try to 1:1 adapt the database fields, which
    is also misleading since a domain model is not and should
    not be a direct representation of a database table. It
    would only be by chance if the generic models fit a
    specific domain.
    
    Similar issues exist with the repositories: The
    CategoryRepository for instance assumes it is a good
    idea to set respectStoragePid(false), which is most
    likely not the right thing for an extension use.
    In the end, whatever extbase delivers here, is most
    likely wrong and does not fit the problem domain.
    
    The patch keeps the 'experimental' FAL related models
    since those can be actually useful for extensions and
    their final fate has not been decided, yet. The other
    generic models, especially those with lots of properties
    are marked as deprecated with the patch.
    
    Change-Id: I06629fddd0258c517f3fa8bdf2e9c4b342be9678
    Resolves: #94654
    Related: #83296
    Releases: master
    Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/70061
    
    Tested-by: core-ci's avatarcore-ci <typo3@b13.com>
    Tested-by: Benni Mack's avatarBenni Mack <benni@typo3.org>
    Tested-by: Oliver Bartsch's avatarOliver Bartsch <bo@cedev.de>
    Tested-by: Christian Kuhn's avatarChristian Kuhn <lolli@schwarzbu.ch>
    Reviewed-by: Benni Mack's avatarBenni Mack <benni@typo3.org>
    Reviewed-by: Oliver Bartsch's avatarOliver Bartsch <bo@cedev.de>
    Reviewed-by: Christian Kuhn's avatarChristian Kuhn <lolli@schwarzbu.ch>
    3c78adc6
BackendUserRepository.php 1.08 KB