public function testReferenceEntry() { $em = $this->getMockAnnotationReaderEntityManager(); $role = new TestEntity\Role(); $role->setName('admin'); $meta = $em->getClassMetadata(self::TEST_ENTITY_ROLE); $meta->getReflectionProperty('id')->setValue($role, 1); $referenceRepo = new ReferenceRepository($em); $referenceRepo->addReference('test', $role); $references = $referenceRepo->getReferences(); $this->assertCount(1, $references); $this->assertArrayHasKey('test', $references); $this->assertInstanceOf(self::TEST_ENTITY_ROLE, $references['test']); }
/** * @param ReferenceRepository $referenceRepository * * @throws \RuntimeException * * @return string */ public function serialize(ReferenceRepository $referenceRepository) { $references = array(); $isORM = $referenceRepository->getManager() instanceof EntityManager; foreach ($referenceRepository->getReferences() as $name => $reference) { $reference = $referenceRepository->getReference($name); $references[$name]['identifier'] = $referenceRepository->getManager()->getUnitOfWork()->getEntityIdentifier($reference); if ($reference instanceof Proxy) { $ro = new \ReflectionObject($reference); $references[$name]['class'] = $ro->getParentClass()->getName(); } else { $references[$name]['class'] = get_class($reference); } } return serialize($references); }