tokenStorage = $tokenStorage; $this->em = $em; } public static function getSubscribedEvents(): array { return [ TaskEvent::PERSIST => [ 'onTaskPersist', ], ]; } public function onTaskPersist(TaskEvent $e) { $task = $e->getTask(); $user = $this->tokenStorage->getToken()->getUser(); $event = (new SingleTaskPlaceEvent()) ->setTask($task) ->setAuthor($user) ->setTransition('_creation') ->setData([ 'new_states' => $task->getCurrentStates(), ]); $task->getTaskPlaceEvents()->add($event); $this->em->persist($event); } public function onTransition(WorkflowEvent $e) { $task = $e->getSubject(); $user = $this->tokenStorage->getToken()->getUser(); $event = (new SingleTaskPlaceEvent()) ->setTask($task) ->setAuthor($user) ->setTransition($e->getTransition()->getName()) ->setData([ 'old_states' => $e->getTransition()->getFroms(), 'new_states' => $e->getTransition()->getTos(), 'workflow' => $e->getWorkflowName(), ]); $task->getTaskPlaceEvents()->add($event); $this->em->persist($event); } }