You are here

public static function File::preCreate in Drupal 9

Same name and namespace in other branches
  1. 8 core/modules/file/src/Entity/File.php \Drupal\file\Entity\File::preCreate()

Changes the values of an entity before it is created.

Load defaults for example.

Parameters

\Drupal\Core\Entity\EntityStorageInterface $storage: The entity storage object.

mixed[] $values: An array of values to set, keyed by property name. If the entity type has bundles the bundle key has to be specified.

Overrides EntityBase::preCreate

File

core/modules/file/src/Entity/File.php, line 154

Class

File
Defines the file entity class.

Namespace

Drupal\file\Entity

Code

public static function preCreate(EntityStorageInterface $storage, array &$values) {

  // Automatically detect filename if not set.
  if (!isset($values['filename']) && isset($values['uri'])) {
    $values['filename'] = \Drupal::service('file_system')
      ->basename($values['uri']);
  }

  // Automatically detect filemime if not set.
  if (!isset($values['filemime']) && isset($values['uri'])) {
    $guesser = \Drupal::service('file.mime_type.guesser');
    if ($guesser instanceof MimeTypeGuesserInterface) {
      $values['filemime'] = $guesser
        ->guessMimeType($values['uri']);
    }
    else {
      $values['filemime'] = $guesser
        ->guess($values['uri']);
      @trigger_error('\\Symfony\\Component\\HttpFoundation\\File\\MimeType\\MimeTypeGuesserInterface is deprecated in drupal:9.1.0 and is removed from drupal:10.0.0. Implement \\Symfony\\Component\\Mime\\MimeTypeGuesserInterface instead. See https://www.drupal.org/node/3133341', E_USER_DEPRECATED);
    }
  }
}