На стороне extbase класс может расширяться TYPO3\CMS\Extbase\DomainObject\AbstractValueObject
.Но я не могу понять, как реализовать объект значения внутри TCA-Konfiguration и ext_tables.sql
.Бонусные баллы за реализацию IRRE.
Объект-значение не имеет реального uid, но определяется всеми его свойствами.Примером может быть «rgb-color», который определяется / уникален комбинацией его значений r, g и b.
Итак, я представляю, что когда пользователь добавляет объект значения типа "rgb-color" со значениями 255 0 0 в родительскую запись, должно произойти что-то подобное:
- Еслинет записи для объекта значения со значениями 255 0 0, хранящегося в таблице базы данных
tx_extkey_domain_model_rgbcolor
, он будет создан, и он будет присвоен родительской записи (возможно, через таблицу mm) - Если теперь другойПользователь также добавляет цвет со значениями 255 0 0 в другую родительскую запись, новая запись не будет создана в
tx_extkey_domain_model_rgbcolor
, но будет использоваться уже существующая
Я не могу найти ничего полезногоресурсы о фактической реализации объектов-значений в TYPO3.Я нашел эту статью, объясняющую разницу между сущностями и объектами-значениями:
https://docs.typo3.org/typo3cms/ExtbaseFluidBook/latest/2-BasicPrinciples/2-Domain-Driven-Design.html#to-model-the-domain
Я даже искал исходный код TYPO3 для классов, расширяющих AbstractValueObject
и их соответствующую конфигурацию TCA, но не смог 'ничего не найти.
Мне это интересно, потому что я думаю, что это может оказать положительное влияние на производительность при запросе многих родительских объектов.
Любая помощь, ссылки на учебникиили лучшая документация поможет.Я также не совсем уверен, являются ли объекты-значения действительно полезными для расширений TYPO3.