В настоящее время я работаю над очень абстрактно написанным подписчиком, который должен улавливать и обрабатывать все виды изменений в любом заданном документе.
Пытаясь это сделать, я столкнулся с краем, с которым я не знаю, как справиться:
1) Мой документ содержит коллекцию вложенных документов embedMany. 2) Я звоню $document->collection->clear()
3) Затем я сбрасываю
Как я могу уловить изменения свойства коллекции?
Мой подписчик в настоящее время реагирует на событие onFlush доктрины. До сих пор я пытался следовать (все безуспешно):
- Перебор запланированных вставок документов
- Итерация по ScheduledDocumentUpserts
- Итерация по ScheduledDocumentUpdates
- Итерация по полной IdentityMap() и вызов
$unitOfWork->getScheduledCollections($document)
для каждого документа и попытка найти там изменение
Кажется, я не могу найти документ или его коллекцию ни в одном из этих случаев. Однако я твердо убежден, что эта доктрина должна сохранять ссылку на коллекцию, если она планирует очистить ее от всего содержимого во время фактической фиксации базы данных.
Я был бы рад любой помощи или намекам на работоспособное решение.