Exemplo n.º 1
0
 /**
  * @param ClassMetadata $classMetadata
  * @param Query         $query
  *
  * @return bool
  */
 protected function canUseResourceRoute(ClassMetadata $classMetadata, Query $query)
 {
     if (!$classMetadata->hasRoute('resource')) {
         return false;
     }
     if (count($query->getConditions()) !== count($classMetadata->getIdentifierFieldNames())) {
         return false;
     }
     foreach ($classMetadata->getIdentifierFieldNames() as $idField) {
         if (!array_key_exists($idField, $query->getConditions())) {
             return false;
         }
     }
     return true;
 }
Exemplo n.º 2
0
 /**
  * @param array $data
  *
  * @return array
  */
 private function mapFromSerialized(array $data)
 {
     $mappedEntityData = [];
     foreach ($data as $serializedName => $value) {
         if ($this->classMetadata->hasField($this->classMetadata->getFieldName($serializedName))) {
             $fieldName = $this->classMetadata->getFieldName($serializedName);
             $fieldMapping = $this->classMetadata->getFieldMapping($fieldName);
             if (isset($fieldMapping['association'])) {
                 $embedded = [];
                 $associationMetadata = $this->classMetadataFactory->getMetadataFor($fieldMapping['targetEntity']);
                 $associationSerializer = new Serializer($associationMetadata, $this->unitOfWork, $this->classMetadataFactory);
                 if ($fieldMapping['association'] === ClassMetadata::EMBED_ONE) {
                     if (is_array($value)) {
                         $associationData = $associationSerializer->mapFromSerialized($value);
                         $associationSerializer->hydrateSingleEntity($associationData, $embedded);
                         $value = reset($embedded);
                     } else {
                         $value = null;
                     }
                 }
             } else {
                 $type = Type::getType($fieldMapping['type']);
                 $value = $type->convertToPhpValue($value);
             }
             $mappedEntityData[$fieldName] = $value;
         }
     }
     return $mappedEntityData;
 }
Exemplo n.º 3
0
 /**
  * Returns a new instance of the given class.
  *
  * @param ClassMetadata $classMetadata
  *
  * @return mixed
  */
 private function newInstance(ClassMetadata $classMetadata)
 {
     $entity = $classMetadata->newInstance();
     return $entity;
 }