/** * @param RemoveEvent $event */ public function postRemove(RemoveEvent $event) { $author = ''; $subject = $event->getSubject(); if (null !== ($token = $this->tokenStorage->getToken()) && $this->authorizationChecker->isGranted('IS_AUTHENTICATED_REMEMBERED')) { $author = $token->getUser()->getUsername(); } $previousVersion = $this->versionRepository->getNewestLogEntry(ClassUtils::getClass($subject), $event->getSubjectId()); $version = $this->versionFactory->create(ClassUtils::getClass($subject), $event->getSubjectId(), $author, 'Deleted'); $version->setVersion(null !== $previousVersion ? $previousVersion->getVersion() + 1 : 1)->setSnapshot(null !== $previousVersion ? $previousVersion->getSnapshot() : [])->setChangeset([]); $this->versionSaver->save($version); }
/** * Create a pending version for a versionable entity * * @param object $versionable * @param string $author * @param array $changeset * @param string|null $context * * @return Version */ public function createPendingVersion($versionable, $author, array $changeset, $context = null) { $version = $this->versionFactory->create(ClassUtils::getClass($versionable), $versionable->getId(), $author, $context); $version->setChangeset($changeset); return $version; }