Предположим, у меня есть следующие объекты:
class User{
private $id;
private $name;
private $active;
private $clients;
}
class Client{
private $id;
private $name;
private $active;
private $subdomain;
private $users;
}
class Subdomain{
private $id;
private $name;
private $active;
}
Со всеми их сеттерами и получателями, таблицами orm и отношениями. Пользователи и клиенты имеют отношение «многие ко многим», тогда как отношения между клиентом и субдоменом - «один к одному».
Я хочу не активировать клиента, пока не будет активен хотя бы один пользователь, и этот клиент не будет активен, пока не будет активен его поддомен.
Теперь, когда это можно сделать, просто создав некоторую функцию и вызывая ее всякий раз, когда объект обновляется, и когда у меня все isActive() истинно, я бы вызвал setActive для нужного пользователя. Но я искал что-то вроде Entity или наблюдателя за записями, поэтому всякий раз, когда запись обновляется, автоматически проверяйте некоторые поля, а затем обновляйте поле для этого пользователя. Другими словами, я не хочу вручную вызывать функции setActive () и checkForClientAndSubdomainActivity (). Так есть ли что-нибудь подобное готовому? или я должен его построить?
Заранее спасибо, я вырезал большую часть кода только для удобства чтения.

Вы можете использовать события Doctrine для выполнения ваших операций каждый раз, когда вы выполняете обновление определенной сущности (есть больше событий): док.
Из Sf 3.4 у вас есть компонент рабочего процесса, он поставляется с множеством различных конфигураций. Я не совсем понимаю, что вам нужно, но вы можете взглянуть :)