コード例 #1
0
 public function testCachedMetadataFromFactory()
 {
     $cache = new \Doctrine\Common\Cache\ArrayCache();
     $this->factory = new ClassMetadataFactory($this->loader, $cache);
     $metadata = $this->factory->getClassMetadata('Tests\\Dummy\\Classes\\AnnotatedClass');
     $this->assertTrue($cache->contains(ltrim('Tests\\Dummy\\Classes\\AnnotatedClass', '\\')));
     //Get new Factory to retrieve from cache
     $this->factory = new ClassMetadataFactory($this->loader, $cache);
     $metadataCached = $this->factory->getClassMetadata('Tests\\Dummy\\Classes\\AnnotatedClass');
     $this->assertEquals($metadata, $metadataCached);
 }
コード例 #2
0
 /**
  * Parses a class.
  *
  * @param ResourceInterface $resource
  * @param string            $entityClass
  * @param string            $io
  *
  * @return array
  */
 private function parseClass(ResourceInterface $resource, $entityClass, $io)
 {
     $classMetadata = $this->classMetadataFactory->getMetadataFor($entityClass, $resource->getNormalizationGroups(), $resource->getDenormalizationGroups(), $resource->getValidationGroups());
     $data = array();
     foreach ($classMetadata->getAttributes() as $attributeMetadata) {
         if (!$attributeMetadata->isIdentifier() && $attributeMetadata->isReadable() && self::OUT_PREFIX === $io || $attributeMetadata->isWritable() && self::IN_PREFIX === $io) {
             $data[$attributeMetadata->getName()] = $this->parseAttribute($resource, $attributeMetadata, $io);
         }
     }
     return $data;
 }
コード例 #3
0
 /**
  * Pre-build the ClassMetadata for all the registered root classes
  */
 public function buildClassMetadatas()
 {
     foreach ($this->rootClasses as $class) {
         $this->classMetadataFactory->getClassMetadata($class);
     }
 }