web-dev-qa-db-fra.com

Charger une entité de fichier par URI

Existe-t-il un moyen de charger un fichier par URI dans Drupal 8 ou Drupal 9?

En Drupal 7 c'est possible par l'exemple suivant:

$uri = 'public://file.xyz';

// Take a look at: file.inc::file_load_multiple
$files = file_load_multiple(array(), array('uri' => $uri));
$file = reset($files); // If empty, $file will be false, otherwise will contain the required file

Tiré d'ici https://www.drupal.org/forum/support/module-development-and-code-questions/2012-06-06/load-a-file-by-uri#comment-649361

11
voleger

Il y a la méthode loadByProperties dans le \Drupal\Core\Entity\EntityStorageInterface qui permet de définir la condition requise dans la recherche de l'entité de fichier par l'URI du fichier donné:

/* @var \Drupal\file\FileInterface[] $files */
$files = \Drupal::entityTypeManager()
  ->getStorage('file')
  ->loadByProperties(['uri' => $uri]);
18
voleger