Этот вопрос больше связан с организацией кода (в соответствии с рекомендациями/стилем Symfony 2), чем с самим кодом.
Моя проблема проста и распространена: у меня есть два связанных объекта: «Учетная запись» и «Линии». В объекте Account у меня есть одно поле с именем CurrentTotal, а в объекте Lines — поле с именем Amount.
Что мне нужно, так это обновить поле Account.CurrentTotal, когда я сохраняю или обновляю любой объект Lines, добавляя или вычитая количество Amount.
Я знаю, что могу добавить эту бизнес-логику в контроллер, но при этом я сильно связываю контроллер с сущностями, и я думаю, что это не лучшее место для размещения бизнес-логики.
Я также могу создать прослушиватель Doctrine, и когда я обновляю или сохраняю объект типа Line, обновляю связанный объект Account. Но если у меня будет сотня сущностей, а мне нужно пятьдесят-шестьдесят этих "триггеров", может, это будет бардак...
И мой вопрос: Какой правильный/рекомендуемый способ создания такого рода «триггеров» с Symfony 2? Имейте в виду, что мне нужно, чтобы это можно было протестировать с помощью PHPUnit, поэтому он должен быть свободным. в паре.