Този въпрос е по-скоро свързан с организацията на кода (следвайки указанията/стила на Symfony 2), отколкото със самия код.
Проблемът ми е лесен и често срещан: имам два свързани обекта, Account и Lines. В обекта Account имам едно поле, наречено CurrentTotal, а в обекта Lines, поле, наречено Amount.
Това, от което се нуждая, е да актуализирам полето Account.CurrentTotal, когато продължавам или актуализирам който и да е обект Lines, добавяйки или изваждайки количеството Amount.
Знам, че мога да добавя тази бизнес логика към контролера, но като правя това, свързвам до голяма степен контролера с обектите и мисля, че това не е добро място за поставяне на бизнес логика.
Мога също така да създам слушател на Doctrine и когато актуализирам или поддържам обект от типа Line, да актуализирам свързания обект Account. Но ако имам сто същности и имам нужда от петдесет или шестдесет от тези „тригери“, може би това ще е бъркотия...
И въпросът ми е: Кой е правилният/препоръчителният начин за изграждане на този вид „тригери“ със Symfony 2? Имайте предвид, че трябва това да може да се тества с PHPUnit, така че трябва да е свободно- съчетано.