getMediaType($values); $media_source = $media_type->getSource(); $source_field = $media_source->getSourceFieldDefinition($media_type); $fields = $this->entityFieldManager()->getFieldDefinitions('media', $media_type->id()); return $fields[$source_field->getFieldStorageDefinition()->getName()] ?? $media_source->createSourceField($media_type); } /** * Lazy-initialization of the entity field manager service. * * @return \Drupal\Core\Entity\EntityFieldManagerInterface * The entity field manager service. */ protected function entityFieldManager() : EntityFieldManagerInterface { if ($this->entityFieldManager === NULL) { $this->setEntityFieldManager(\Drupal::service('entity_field.manager')); } return $this->entityFieldManager; } /** * Setter for entity field manager. */ public function setEntityFieldManager(EntityFieldManagerInterface $entity_field_manager) : self { $this->entityFieldManager = $entity_field_manager; return $this; } }