У меня есть классы propel, которые реализуют метод preSave. Это крючок, где некоторые поля могут автоматически обновляться при каждой операции сохранения. Это необходимо для сохранения даты последнего обновления и пользователя последнего обновления.Symfony2: ввести контекст безопасности в классы моделей
Проблема заключается в том, что классы модели не имеют доступа к контейнеру службы, где я могу получить идентификатор пользователя (для установки в поле последнего обновления). Модельные классы не могут (по моему известному) быть объявлены как сервис, поскольку они являются определенными сущностями, созданными самим движением, а не контейнером сервиса.
Единственное решение, которое я вижу, это иметь «реальный» синглтон (со статическим экземпляром), содержащий объект пользователя, который я бы инициировал во время загрузки приложения, тогда любой класс модели мог бы получить к нему доступ.
Любая идея?
Для Propel2: https://github.com/marcj/EventDispatcherBehavior. Используйте прослушиватель, там вы можете присоединить/определить другие службы как аргументы конструктора, как обычно. –