/** * 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); } } }
public function testSetCustomRepositoryClass() { $this->assertIsFluent($this->builder->setCustomRepositoryClass('Doctrine\\Tests\\Models\\CMS\\CmsGroup')); $this->assertEquals('Doctrine\\Tests\\Models\\CMS\\CmsGroup', $this->cm->customRepositoryClassName); }