Я использую Доктрину 2 сущности. У нас есть некоторые объекты, которые должны обновлять связанные элементы, когда они сохраняются в базе данных. Например, когда пользовательская запись изменена, мы сохраняем ее как новую запись с полем «неактивно», установленным на «ложь». Тем не менее, мы должны установить для поля «неактивное» для всех предыдущих записей этого пользователя значение «истина». Это сделано для ведения истории аудита. Это база данных Legacy, поэтому изменение структуры не вариант.
Поскольку Doctrine сохраняет объекты, передавая их персистирующему объекту (persist :: ($ thisObj)), а не объекту, имеющему метод save ($thisObj->save()
), мы не можем просто расширить метод 'save' из родительский объект. Единственный вариант, который я вижу здесь, это попытаться расширить объект «persist», но это звучит как гусиная стайка, просто ожидающая, чтобы это произошло.
Я нашел некоторую информацию о событиях, но не вижу, как их добавить, чтобы события вызывали определенную функцию, когда определенная сущность сохраняется.
Как добавить функциональность до сохранения / после сохранения в некоторые из моих объектов?