security = $security; } public function getSubscribedEvents() { return [ Events::prePersist, Events::preUpdate, ]; } public function prePersist(LifecycleEventArgs $args): void { $object = $args->getObject(); if ($object instanceof TrackCreationInterface) { $object->setCreatedAt(new DateTimeImmutable('now')); if ($this->security->getUser() instanceof User) { $object->setCreatedBy($this->security->getUser()); } } $this->onUpdate($object); } public function preUpdate(LifecycleEventArgs $args): void { $object = $args->getObject(); $this->onUpdate($object); } protected function onUpdate(object $object): void { if ($object instanceof TrackUpdateInterface) { $object->setUpdatedAt(new DateTimeImmutable('now')); if ($this->security->getUser() instanceof User) { $object->setUpdatedBy($this->security->getUser()); } } } }