在包含许多类似项目的TYPO3 8.7扩展库中,我有一个针对每个项目扩展的BaseRepository。因此,所有项目都将共享这些方法。这对我来说似乎是很好的做法。
我想知道是否也建议和可能在模型中拥有类似 BaseEntity 的东西,其中公共属性的属性、getter 和 setter 将由最终模型类定义和继承?还是没有意义?
是的,这是可能的,即使模型不是那么相似,我也经常使用它。 像这样,将某些函数应用于控制器/模型或存储库中的所有类总是很容易的。因此,您可以从自己的抽象模型类扩展所有模型,从抽象存储库类扩展所有存储库,从抽象控制器类扩展所有控制器。然后,自己的
抽象类扩展相应的 extbase 公共类。
如果你让它总是这样,即使有空的抽象类,以后应用任何函数总是很容易的。
与模型对象相关,必须考虑可能存在值对象和实体对象。因此,如果同时使用这两种类型,则可能需要为每个类型定义一个自己的抽象类。