*/ class Loader implements LoaderInterface { private OrmDefs $ormDefs; private EntityManager $entityManager; public function __construct(OrmDefs $ormDefs, EntityManager $entityManager) { $this->ormDefs = $ormDefs; $this->entityManager = $entityManager; } public function process(Entity $entity, Params $params): void { $entityDefs = $this->ormDefs->getEntity($entity->getEntityType()); if (!$entityDefs->hasField('emailAddress')) { return; } if ($entityDefs->getField('emailAddress')->getType() !== 'email') { return; } /** @var Repository $repository */ $repository = $this->entityManager->getRepository('EmailAddress'); $emailAddressData = $repository->getEmailAddressData($entity); $entity->set('emailAddressData', $emailAddressData); $entity->setFetched('emailAddressData', $emailAddressData); } }