function it_does_not_set_discriminator_map_to_other_objects(LoadClassMetadataEventArgs $eventArgs, ClassMetadata $metadata)
 {
     $eventArgs->getClassMetadata()->willReturn($metadata);
     $metadata->getName()->willReturn('Sylius\\Component\\Product\\Model\\Product');
     $metadata->setDiscriminatorMap(Argument::any())->shouldNotBeCalled();
     $this->loadClassMetadata($eventArgs);
 }
 function it_adds_new_targeted_repository(LoadClassMetadataEventArgs $args, ClassMetadata $cm)
 {
     $this->addResolveTargetRepository('foo', 'barRepository');
     $args->getClassMetadata()->willReturn($cm);
     $cm->getName()->willReturn('foo');
     $this->loadClassMetadata($args);
 }
 /**
  * Attach the discriminator map to the Resource entity.
  *
  * @param LoadClassMetadataEventArgs $event
  */
 public function loadClassMetadata(LoadClassMetadataEventArgs $event)
 {
     $classMetadata = $event->getClassMetadata();
     if ('Omeka\\Entity\\Resource' == $classMetadata->name) {
         $classMetadata->discriminatorMap = $this->discriminatorMap;
     }
 }
 /**
  * Handle the load class metadata event: set the translation strategy
  *
  * @param LoadClassMetadataEventArgs $eventArgs
  */
 public function loadClassMetadata(LoadClassMetadataEventArgs $eventArgs)
 {
     /** @var $meta ClassMetadata */
     $meta = $eventArgs->getClassMetadata();
     if ($meta->getReflectionClass()->implementsInterface('Symfony\\Cmf\\Bundle\\CoreBundle\\Translatable\\TranslatableInterface')) {
         $meta->setTranslator($this->translationStrategy);
     }
 }
 /**
  * Processes event and resolves new object repository class
  *
  * @param LoadClassMetadataEventArgs $args
  */
 public function loadClassMetadata(LoadClassMetadataEventArgs $args)
 {
     $classMetadata = $args->getClassMetadata();
     $className = $classMetadata->getName();
     if (isset(static::$resolveTargetRepo[ltrim($className)])) {
         $classMetadata->customRepositoryClassName = static::$resolveTargetRepo[ltrim($className)];
     }
 }
 /**
  * @param LoadClassMetadataEventArgs $args
  */
 public function loadClassMetadata(LoadClassMetadataEventArgs $args)
 {
     /* @var ClassMetadataInfo $mapping */
     $mapping = $args->getClassMetadata();
     if ($mapping->getName() == ConfigurationEntry::clazz()) {
         $mapping->mapManyToOne(array('fieldName' => 'owner', 'type' => ClassMetadataInfo::MANY_TO_ONE, 'isOwningSide' => true, 'targetEntity' => $this->semanticConfig['owner_entity']));
     }
 }
 /**
  * @param \Doctrine\Common\Persistence\Event\LoadClassMetadataEventArgs $event
  */
 public function loadClassMetadata(LoadClassMetadataEventArgs $event)
 {
     $metadata = $event->getClassMetadata();
     $em = $event->getObjectManager();
     /** @var $metadata \Doctrine\ORM\Mapping\ClassMetadata */
     if (strstr($metadata->name, 'Doctrine\\Tests\\Models\\Cache')) {
         return;
     }
     $this->enableCaching($metadata, $em);
 }
 public function loadClassMetadata(LoadClassMetadataEventArgs $eventArgs)
 {
     /**
      * @var \Doctrine\ORM\Mapping\ClassMetadata|\Doctrine\ODM\MongoDB\Mapping\ClassMetadata $metadata
      */
     $metadata = $eventArgs->getClassMetadata();
     if ($metadata->getName() !== self::ASSOCIATION_CLASS_NAME) {
         return;
     }
     $metadata->setDiscriminatorMap($this->discriminatorMap);
 }
 /**
  * Adjusts the entity mapping metadata.
  *
  * @param  LoadClassMetadataEventArgs  $args
  */
 public function loadClassMetadata(LoadClassMetadataEventArgs $args)
 {
     // Get the name of the class being mapped
     /** @var ClassMetadataInfo $meta */
     $meta = $args->getClassMetadata();
     $entityClass = $meta->getName();
     if (in_array($entityClass, $this->getEntityList())) {
         // Prepend the table prefix
         $meta->setPrimaryTable(['name' => $this->prefix . $meta->getTableName()]);
     }
 }
Esempio n. 10
0
 /**
  * Map creator and changer fields to User objects.
  *
  * @param LoadClassMetadataEventArgs $event
  */
 public function loadClassMetadata(LoadClassMetadataEventArgs $event)
 {
     $metadata = $event->getClassMetadata();
     $reflection = $metadata->getReflectionClass();
     if ($reflection !== null && $reflection->implementsInterface('Sulu\\Component\\Persistence\\Model\\UserBlameInterface')) {
         if (!$metadata->hasAssociation(self::CREATOR_FIELD)) {
             $metadata->mapManyToOne(['fieldName' => self::CREATOR_FIELD, 'targetEntity' => $this->userClass, 'joinColumns' => [['name' => 'idUsersCreator', 'onDelete' => 'SET NULL', 'referencedColumnName' => 'id', 'nullable' => true]]]);
         }
         if (!$metadata->hasAssociation(self::CHANGER_FIELD)) {
             $metadata->mapManyToOne(['fieldName' => self::CHANGER_FIELD, 'targetEntity' => $this->userClass, 'joinColumns' => [['name' => 'idUsersChanger', 'onDelete' => 'SET NULL', 'referencedColumnName' => 'id', 'nullable' => true]]]);
         }
     }
 }
Esempio n. 11
0
 /**
  * Load the class data, mapping the created and changed fields
  * to datetime fields.
  *
  * @param LoadClassMetadataEventArgs $event
  */
 public function loadClassMetadata(LoadClassMetadataEventArgs $event)
 {
     $metadata = $event->getClassMetadata();
     $reflection = $metadata->getReflectionClass();
     if ($reflection !== null && $reflection->implementsInterface('Sulu\\Component\\Persistence\\Model\\TimestampableInterface')) {
         if (!$metadata->hasField(self::CREATED_FIELD)) {
             $metadata->mapField(['fieldName' => self::CREATED_FIELD, 'type' => 'datetime', 'notnull' => true]);
         }
         if (!$metadata->hasField(self::CHANGED_FIELD)) {
             $metadata->mapField(['fieldName' => self::CHANGED_FIELD, 'type' => 'datetime', 'notnull' => true]);
         }
     }
 }
 public function loadClassMetadata(LoadClassMetadataEventArgs $args)
 {
     $metadata = $args->getClassMetadata();
     if (null === ($metadata = $this->metadataFactory->getMetadataForClass($metadata->getName()))) {
         return;
     }
     $odmMetadata = $args->getClassMetadata();
     foreach ($metadata->getPropertyMetadata() as $property) {
         try {
             $field = $this->fieldLoader->load($property->getType(), $property->getOptions());
             $this->mapper->__invoke($property->getName(), $field, $odmMetadata);
         } catch (\Exception $e) {
             throw new \InvalidArgumentException(sprintf('Could not map field type "%s" on property "%s#%s"', $property->getType(), $property->getClass(), $property->getName()), null, $e);
         }
     }
 }
 /**
  * Handle the load class metadata event: remove translated attribute from
  * fields and remove the locale mapping if present.
  *
  * @param LoadClassMetadataEventArgs $eventArgs
  */
 public function loadClassMetadata(LoadClassMetadataEventArgs $eventArgs)
 {
     /** @var $meta ClassMetadata */
     $meta = $eventArgs->getClassMetadata();
     if (!$meta->translator) {
         return;
     }
     foreach ($meta->translatableFields as $field) {
         unset($meta->mappings[$field]['translated']);
     }
     $meta->translatableFields = array();
     if (null !== $meta->localeMapping) {
         unset($meta->mappings[$meta->localeMapping]);
         $meta->localeMapping = null;
     }
     $meta->translator = null;
 }
Esempio n. 14
0
 /**
  * @param LoadClassMetadataEventArgs $eventArgs
  */
 public function loadClassMetadata(LoadClassMetadataEventArgs $eventArgs)
 {
     $reader = new AnnotationReader();
     $meta = $eventArgs->getClassMetadata();
     $reflexionClass = $meta->getReflectionClass();
     if (null !== $reflexionClass) {
         foreach ($reflexionClass->getProperties() as $property) {
             if ($meta->isMappedSuperclass && !$property->isPrivate() || $meta->isInheritedField($property->name) || isset($meta->associationMappings[$property->name]['inherited'])) {
                 continue;
             }
             /** @var $annotation \Leapt\ImBundle\Doctrine\Mapping\Mogrify */
             if ($annotation = $reader->getPropertyAnnotation($property, 'Leapt\\ImBundle\\Doctrine\\Mapping\\Mogrify')) {
                 $field = $property->getName();
                 $this->config[$meta->getTableName()]['fields'][$field] = array('property' => $property, 'params' => $annotation->params);
             }
         }
     }
 }
 /**
  * {@inheritdoc}
  */
 public function loadClassMetadata(LoadClassMetadataEventArgs $args)
 {
     if ('' === $this->prefix) {
         return;
     }
     $classMetadata = $args->getClassMetadata();
     if (!$classMetadata->getReflectionClass() || !$classMetadata->getReflectionClass()->implementsInterface(self::ENTITY_INTERFACE)) {
         return;
     }
     if ($classMetadata->isInheritanceTypeSingleTable() && !$classMetadata->isRootEntity()) {
         return;
     }
     $classMetadata->setTableName($this->prefix . $classMetadata->getTableName());
     foreach ($classMetadata->getAssociationMappings() as $fieldName => $mapping) {
         if ($mapping['type'] == ClassMetadataInfo::MANY_TO_MANY) {
             $mappedTableName = $classMetadata->associationMappings[$fieldName]['joinTable']['name'];
             $classMetadata->associationMappings[$fieldName]['joinTable']['name'] = $this->prefix . $mappedTableName;
         }
     }
 }
 /**
  * Handle the load class metadata event: remove translated attribute from
  * fields and remove the locale mapping if present.
  *
  * @param LoadClassMetadataEventArgs $eventArgs
  */
 public function loadClassMetadata(LoadClassMetadataEventArgs $eventArgs)
 {
     if (!property_exists('Symfony\\Component\\Routing\\Route', 'condition')) {
         return;
         // nothing to do
     }
     $meta = $eventArgs->getClassMetadata();
     if ($meta->getReflectionClass()->getName() !== 'Symfony\\Component\\Routing\\Route') {
         return;
     }
     if ($meta instanceof OrmClassMetadata) {
         /** @var $meta OrmClassMetadata */
         $meta->mapField(array('fieldName' => 'condition', 'columnName' => 'condition_expr', 'type' => 'string', 'nullable' => true));
     } elseif ($meta instanceof PhpcrClassMetadata) {
         /** @var $meta PhpcrClassMetadata */
         $meta->mapField(array('fieldName' => 'condition', 'type' => 'string', 'nullable' => true));
     } else {
         throw new \LogicException(sprintf('Class metadata was neither PHPCR nor ORM but %s', get_class($meta)));
     }
 }
 /**
  * @param LoadClassMetadataEventArgs $eventArgs
  */
 public function loadClassMetadata(LoadClassMetadataEventArgs $eventArgs)
 {
     $this->configurator->configure($eventArgs->getClassMetadata(), $this->mappingOverrides, $eventArgs->getObjectManager()->getConfiguration());
 }
Esempio n. 18
0
 /**
  * @param $eventArgs
  */
 public function loadClassMetadata(LoadClassMetadataEventArgs $eventArgs)
 {
     $metadata = $eventArgs->getClassMetadata();
     $this->loadAssociations($metadata);
     $this->loadIndexes($metadata);
     $this->loadUniques($metadata);
     $this->loadDiscriminatorColumns($metadata);
     $this->loadDiscriminators($metadata);
     $this->loadInheritanceTypes($metadata);
 }
 /**
  * Maps additional metadata for the Entity
  *
  * @param LoadClassMetadataEventArgs $eventArgs
  *
  * @return void
  */
 public function loadClassMetadata(LoadClassMetadataEventArgs $eventArgs)
 {
     $this->loadMetadataForObjectClass($eventArgs->getObjectManager(), $eventArgs->getClassMetadata());
 }
 public function loadClassMetadata(LoadClassMetadataEventArgs $args)
 {
     $this->called = true;
     $this->dm = $args->getObjectManager();
     $this->meta = $args->getClassMetadata();
 }
 /**
  * * {@inheritDoc} *
  * public function getSubscribedEvents() {
  * return array(
  * Events::loadClassMetadata,
  * );
  * }
  */
 public function loadClassMetadata(LoadClassMetadataEventArgs $eventArgs)
 {
     // the $metadata is the whole mapping info for this class
     $metadata = $eventArgs->getClassMetadata();
     // print_r($metadata);getClassAnnotations
     // $classMetadata = new MergeableClassMetadata($eventArgs->getName());
     $data = $this->container->getParameter('solr_search');
     if ($metadata->getName() == "UserBundle\\Entity\\Department") {
         // echo "++<pre>";
         $entity = new Search();
         $annotationReader = new AnnotationReader();
         // $pp = $annotationReader->getFields($entity);
         $class = $metadata->getReflectionClass();
         $annotations = $annotationReader->getClassAnnotations($class);
         // $pp = $annotationReader->getParentProperties($metadata->getReflectionClass());
         // print_r($annotations);
         // exit;
         /*
          * foreach ($metadata->getAssociationNames() as $fieldName => $mapping) {
          * if ($mapping['type'] == ClassMetadataInfo::MANY_TO_MANY) {
          * if(isset($classMetadata->associationMappings[$fieldName]['joinTable']['name']))
          * {
          * $mappedTableName = $classMetadata->associationMappings[$fieldName]['joinTable']['name'];
          * $classMetadata->associationMappings[$fieldName]['joinTable']['name'] = str_replace('.', '_',
          * $mappedTableName);
          * }
          * }
          * }
          *
          */
         // print_r($pp);
         // $annotationReader->getPropertiesByType();
         // print_r($eventArgs->getProperties());
         // print_r($metadataAll);
         /*
          * print_r($eventArgs
          * ->getEntityManager()
          * ->getConfiguration());
          */
         // exit;
     }
     // $metadata->
     /*
      * foreach ($eventArgs->getProperties() as $reflectionProperty) {
      * $propertyMetadata = new PropertyMetadata($class->getName(), $reflectionProperty->getName());
      * $annotation = $this->reader->getPropertyAnnotation(
      * $reflectionProperty,
      * 'Matthias\\AnnotationBundle\\Annotation\\DefaultValue'
      * );
      * }
      */
     // print_r($data);
     // echo "<pre>";
     // echo $metadata->getName();
     // exit;
     /*
      * if ($metadata->getName() != '') {
      * return;
      * }
      */
     $namingStrategy = $eventArgs->getEntityManager()->getConfiguration()->getNamingStrategy();
 }
 /**
  * Load inheritance mapping automatically if using Resource entity from this bundle
  *
  * @param LoadClassMetadataEventArgs $event
  * @throws MappingException
  */
 public function loadClassMetadata(LoadClassMetadataEventArgs $event)
 {
     $metadata = $event->getClassMetadata();
     if (!$metadata instanceof ClassMetadataInfo) {
         return;
     }
     $class = $metadata->getReflectionClass();
     if ($class === null) {
         $class = new \ReflectionClass($metadata->getName());
     }
     if ($class->getName() !== self::BASE_RESOURCE) {
         return;
     }
     foreach ($this->resourceConfigurations as $resourceConfiguration) {
         if (is_a($resourceConfiguration->getEntity(), self::BASE_RESOURCE, true)) {
             $metadata->addDiscriminatorMapClass($resourceConfiguration->getCode(), $resourceConfiguration->getEntity());
         }
     }
 }
Esempio n. 23
0
 /**
  * @param \Doctrine\ORM\Event\LoadClassMetadataEventArgs|LoadClassMetadataEventArgs $eventArgs
  */
 public function loadClassMetadata($eventArgs)
 {
     $metadata = $eventArgs->getClassMetadata();
     $this->driver->loadMetadataForClass($metadata->getName(), $metadata);
 }
Esempio n. 24
0
 /**
  * Set the charset to utf8mb4.
  *
  * @param LoadClassMetadataEventArgs $event
  */
 public function loadClassMetadata(LoadClassMetadataEventArgs $event)
 {
     $metadata = $event->getClassMetadata();
     $metadata->table['options']['collate'] = 'utf8mb4_unicode_ci';
     $metadata->table['options']['charset'] = 'utf8mb4';
 }