Как украсить событие Doctrine с определенным EntityChangeSet - PullRequest
0 голосов
/ 09 июня 2019

У меня есть прослушиватель событий Doctrine в контексте Symfony, который прослушивает изменение сущности и уведомляет об этом отдельный микросервис.Я реализовал метод postUpdate, который получает измененные атрибуты через UnitOfWork ChangeSet

$changedAttributes = $args->getEntityManager()
  ->getUnitOfWork()
  ->getEntityChangeSet($subject);

Проверка этого фрагмента кода оказывается сложной задачей, поскольку я не могу издеваться над UnitOfWork, так как Prophecy не поддерживает ссылки

"Prophecy\Exception\Doubler\ReturnByReferenceException : Returning by reference not supported."  

Теперь я знаю, что мог бы использовать метод PreUpdate вместо PostUpdate, но я не хочу этого делать.(Если не окажется, что у меня нет другого разумного выбора.)

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

...