コード例 #1
0
 /**
  * Loads the metadata for the specified class into the provided container.
  *
  * @param string $className
  * @param ClassMetadata|\Doctrine\ORM\Mapping\ClassMetadata $metadata
  *
  * @return void
  */
 public function loadMetadataForClass($className, ClassMetadata $metadata)
 {
     $mapping = config(sprintf('doctrine.mappings.%s', $className));
     $builder = new ClassMetadataBuilder($metadata);
     if (!empty($mapping['abstract'])) {
         $builder->setMappedSuperClass();
     }
     if (!empty($mapping['table'])) {
         $builder->setTable($mapping['table']);
     }
     if (!empty($mapping['indexes'])) {
         foreach ($mapping['indexes'] as $name => $columns) {
             $builder->addIndex($columns, $name);
         }
     }
     if (!empty($mapping['repository'])) {
         $builder->setCustomRepositoryClass($mapping['repository']);
     }
     if (!empty($mapping['fields'])) {
         foreach ($mapping['fields'] as $fieldName => $fieldConfig) {
             $this->mapField($builder, $fieldName, $fieldConfig);
         }
     }
 }
コード例 #2
0
 public function testSetCustomRepositoryClass()
 {
     $this->assertIsFluent($this->builder->setCustomRepositoryClass('Doctrine\\Tests\\Models\\CMS\\CmsGroup'));
     $this->assertEquals('Doctrine\\Tests\\Models\\CMS\\CmsGroup', $this->cm->customRepositoryClassName);
 }