TYPO3: Базовая модель?

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

Интересно, также рекомендуется и возможно ли иметь что-то вроде BaseEntity в модели, где свойства, геттеры и сеттеры для общих атрибутов будут определены и унаследованы конечными классами модели? Или нет в этом смысла?


person Urs    schedule 22.08.2018    source источник


Ответы (1)


Да, это возможно, и я использую его довольно часто, даже если модели не очень похожи. Таким образом, всегда легко применить некоторые функции ко всем классам в контроллере/модели или репозитории.
Таким образом, вы можете расширить все модели из собственного абстрактного класса модели, все репозитории из абстрактного класса репозитория и все контроллеры из абстрактного класс контроллера.
Собственные абстрактные классы расширяют соответствующие общие классы extbase.
Если вы всегда делаете так, даже с пустыми абстрактными классами, всегда легко применить любые функции позже.

Что касается объектов-моделей, следует учитывать, что могут существовать объекты-значения и объекты-сущности. Таким образом, может потребоваться определить для каждого типа собственный абстрактный класс, если используются оба типа.

person David    schedule 22.08.2018
comment
Спасибо! Я сделал abstract class AbstractBaseEntity extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity, и он работает очень хорошо - person Urs; 23.08.2018
comment
Настоящая магия должна исходить из свойств и/или функций в новом абстрактном классе(ах) ;-) - person David; 23.08.2018