В расширении extbase TYPO3 8.7 с множеством похожих элементов у меня есть BaseRepository, расширяемый для каждого элемента. Таким образом, все элементы будут использовать эти методы. Мне это кажется хорошей практикой.
Интересно, рекомендуется ли и возможно ли иметь что-то вроде BaseEntity в модель, где свойства, геттеры и сеттеры для общих атрибутов будут определяться и унаследоваться окончательными классами модели? Или это не имеет смысла?





Да, это возможно, и я использую его довольно часто, даже если модели не так похожи. Таким образом, всегда легко применить некоторые функции ко всем классам в контроллере / модели или репозитории. Таким образом, вы можете расширить все модели из собственного абстрактного класса модели, все репозитории из абстрактного класса репозитория и все контроллеры из абстрактного класса контроллера. Собственные абстрактные классы затем расширяют соответствующие общие классы extbase. Если вы сделаете это всегда так, даже с пустыми абстрактными классами, всегда легко применить любые функции еще позже.
В отношении объектов-моделей следует учитывать, что могут существовать объекты-значения и объекты-объекты. Поэтому может потребоваться определить для каждого типа собственный абстрактный класс, если используются оба типа.
Настоящая «магия» тогда должна исходить от свойств и / или функций в новом абстрактном классе (ах) ;-)
Спасибо! Я сделал
abstract class AbstractBaseEntity extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity, и он очень хорошо работает