entityWorkflowManager = $entityWorkflowManager; $this->metadataExtractor = $metadataExtractor; $this->registry = $registry; } /** * @param EntityWorkflow $object * * @return array */ public function normalize($object, ?string $format = null, array $context = []) { $workflow = $this->registry->get($object, $object->getWorkflowName()); $handler = $this->entityWorkflowManager->getHandler($object); return [ 'type' => 'entity_workflow', 'id' => $object->getId(), 'relatedEntityClass' => $object->getRelatedEntityClass(), 'relatedEntityId' => $object->getRelatedEntityId(), 'workflow' => $this->metadataExtractor->buildArrayPresentationForWorkflow($workflow), 'currentStep' => $this->normalizer->normalize($object->getCurrentStep(), $format, $context), 'steps' => $this->normalizer->normalize($object->getStepsChained(), $format, $context), 'datas' => $this->normalizer->normalize($handler->getEntityData($object), $format, $context), 'title' => $handler->getEntityTitle($object), ]; } public function supportsNormalization($data, ?string $format = null): bool { return $data instanceof EntityWorkflow && 'json' === $format; } }