在 extbase 方面,一个类可以扩展TYPO3\CMS\Extbase\DomainObject\AbstractValueObject
. 但我不知道如何在 TCA-Konfiguration 和ext_tables.sql
. IRRE 实施的奖励积分。
值对象没有真正的“uid”,但由它的所有属性定义。一个例子可以是“rgb-color”,它由它的值 r、g 和 b 的组合定义/唯一。
所以我想当用户将值为 255 0 0 的“rgb-color”类型的值对象添加到父记录时,应该会发生这样的事情:
- 如果在数据库表中没有存储值为 255 0 0 的值对象的条目
tx_extkey_domain_model_rgbcolor
,则将创建一个并将其分配给父记录(可能通过 mm 表) - 如果现在另一个用户也将值为 255 0 0 的颜色添加到另一个父记录,则不会在 中创建新条目
tx_extkey_domain_model_rgbcolor
,但将使用已经存在的条目
我找不到任何关于在 TYPO3 中实际实现值对象的有用资源。我发现这篇文章解释了实体和值对象之间的区别:
我什至在 TYPO3 源代码中搜索扩展类AbstractValueObject
及其相应的 TCA 配置,但找不到任何东西。
我对此感兴趣,因为我认为这可能会对查询许多父对象时的性能产生积极影响。
任何帮助、教程链接或更好的文档都会有所帮助。我也不太确定值对象是否真的适用于 TYPO3 扩展。