security = $security; } /** * {@inheritDoc} */ public function getSubscribedEvents() { return [ Events::prePersist, Events::preUpdate ]; } public function prePersist(LifecycleEventArgs $args): void { $object = $args->getObject(); if ($object instanceof TrackCreationInterface && $this->security->getUser() instanceof User) { $object->setCreatedBy($this->security->getUser()); $object->setCreatedAt(new \DateTimeImmutable('now')); } $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 && $this->security->getUser() instanceof User) { $object->setUpdatedBy($this->security->getUser()); $object->setUpdatedAt(new \DateTimeImmutable('now')); } } }