The start of something beautiful
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\Bundle\DoctrineBundle\Mapping;
|
||||
|
||||
use Doctrine\ORM\Id\AbstractIdGenerator;
|
||||
use Doctrine\ORM\Mapping\ClassMetadata;
|
||||
use Doctrine\ORM\Mapping\ClassMetadataFactory as BaseClassMetadataFactory;
|
||||
|
||||
use function assert;
|
||||
|
||||
class ClassMetadataFactory extends BaseClassMetadataFactory
|
||||
{
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
protected function doLoadMetadata($class, $parent, $rootEntityFound, array $nonSuperclassParents): void
|
||||
{
|
||||
parent::doLoadMetadata($class, $parent, $rootEntityFound, $nonSuperclassParents);
|
||||
|
||||
$customGeneratorDefinition = $class->customGeneratorDefinition;
|
||||
|
||||
if (! isset($customGeneratorDefinition['instance'])) {
|
||||
return;
|
||||
}
|
||||
|
||||
assert($customGeneratorDefinition['instance'] instanceof AbstractIdGenerator);
|
||||
|
||||
$class->setIdGeneratorType(ClassMetadata::GENERATOR_TYPE_CUSTOM);
|
||||
$class->setIdGenerator($customGeneratorDefinition['instance']);
|
||||
unset($customGeneratorDefinition['instance']);
|
||||
$class->setCustomGeneratorDefinition($customGeneratorDefinition);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user