/**
  * @param ORM\Event\LoadClassMetadataEventArgs $eventArgs
  *
  * @throws Exceptions\InvalidMappingException
  */
 public function loadClassMetadata(ORM\Event\LoadClassMetadataEventArgs $eventArgs)
 {
     /** @var ORM\Mapping\ClassMetadata $classMetadata */
     $classMetadata = $eventArgs->getClassMetadata();
     $this->driver->loadMetadataForObjectClass($eventArgs->getObjectManager(), $classMetadata);
     // Register pre persist event
     $this->registerEvent($classMetadata, ORM\Events::prePersist);
     // Register pre update event
     $this->registerEvent($classMetadata, ORM\Events::preUpdate);
     // Register pre remove event
     $this->registerEvent($classMetadata, ORM\Events::preRemove);
 }
Example #2
0
 /**
  * @param LoadClassMetadataEventArgs $event
  */
 public function loadClassMetadata(LoadClassMetadataEventArgs $event)
 {
     $classMetadata = $event->getClassMetadata();
     $className = $classMetadata->getName();
     /** @var ExtendMetadataBuilder $metadataBuilder */
     $metadataBuilder = $this->metadataBuilderServiceLink->getService();
     if ($metadataBuilder->supports($className)) {
         $classMetadataBuilder = new ClassMetadataBuilder($classMetadata);
         $metadataBuilder->build($classMetadataBuilder, $className);
         $event->getEntityManager()->getMetadataFactory()->setMetadataFor($className, $classMetadata);
     }
     $this->processDiscriminatorValues($classMetadata, $event->getObjectManager());
 }
Example #3
0
 /**
  * @param LoadClassMetadataEventArgs $event
  */
 public function loadClassMetadata(LoadClassMetadataEventArgs $event)
 {
     /** @var ClassMetadata $classMetadata */
     $classMetadata = $event->getClassMetadata();
     if (($resource = $this->resolveResource($classMetadata->getName())) !== null) {
         foreach ($classMetadata->parentClasses as $parentClass) {
             try {
                 $parentMetadata = $event->getObjectManager()->getClassMetadata($parentClass);
             } catch (MappingException $e) {
                 continue;
             }
             /** @var ClassMetadata $parentMetadata */
             if ($parentMetadata->inheritanceType === ClassMetadata::INHERITANCE_TYPE_NONE) {
                 $parentMetadata->isMappedSuperclass = true;
             }
         }
         $classMetadata->setCustomRepositoryClass($resource->getRepository());
     }
 }