/** * @param array $entities Entities * * @return array */ private function buildCustomEntitiesMap(array $entities) { $map = []; foreach ($entities as $entity) { $entityClass = ClassUtils::getClass($entity); $objectHash = spl_object_hash($entity); foreach ($this->getCustomObjectMeta($entityClass) as $targetProperty => $params) { $initPropertyValue = $this->getPropertyValue($entity, $params['initPropertyValuePath']); if (empty($initPropertyValue)) { continue; } if (!isset($map[$entityClass])) { $map[$entityClass] = []; } if (!isset($map[$entityClass][$objectHash])) { $map[$entityClass][$objectHash] = []; } $map[$entityClass][$objectHash][$targetProperty] = ['class' => !empty($params['class']) ? $params['class'] : $this->getPropertyValue($entity, $params['classPropertyPath']), 'initProperty' => !empty($params['initProperty']) ? $params['initProperty'] : $this->extendedMetadataFactory->getIdentifier($entityClass), 'initPropertyValue' => $initPropertyValue]; } } return $map; }