Comment puis-je utiliser l'API UUID?

9

Je sais que la question est (presque) un double de la question suivante # 21991 , qui a été publiée en 2012. Mais cette question n'est PAS liée à Drupal 8, où l'UUID est au cœur.

Références:

La documentation du module principal Drupal 8 ne répertorie pas les UUID.

Je me demande si je pourrais utiliser le module UUID de base de Drupal 8 pour migrer et cartographier les données relationnelles importées d'un environnement différent, qui a des clés uniques générées par Firebase.

Mise à jour:

Il a été aimablement souligné que l'UUID n'est pas un module.

Il semble faire des enregistrements UUID par défaut pour les entités (aka nœuds) et peut apparemment être utilisé pour mapper les références d'entité.

Puis-je en faire usage lorsque j'introduis des données externes, qui ont déjà des ID uniques? J'ai donc les ID de "nœud" et je peux mapper avec les UUID?

Mise à jour basée sur d'autres commentaires:

L'objectif est d'utiliser UUID avec des entités et le module REST. Respectivement, il semble judicieux de le faire lors de l'importation de données relationnelles externes, qui ont déjà des ID uniques.

J'essaie simplement de comprendre comment fonctionne l'UUID, ce qu'il peut faire et ce qui ne l'est pas, comment je peux générer et valider des UUID, ce dont j'ai besoin d'être au courant, si j'introduis des ID externes.

Stefan
la source

Réponses:

10

Je suppose que ce que vous voulez savoir, c'est comment générer un UUID dans Drupal 8, car il n'y a vraiment pas grand-chose d'autre à faire;)

Les entités ont toutes un UUID automatiquement, donc si vous stockez vos données en tant qu'entité de configuration ou de contenu, il vous suffit de définir la clé d'entité uuid.

Pour générer vous-même un UUID, vous avez besoin du service uuid:

$uuid = \Drupal::service('uuid');
$uuid->generate();
$uuid->isValid($uuid_to_validate);
Berdir
la source
Je vous remercie. Je comprends jusqu'à présent, qu'ils sont générés automatiquement. Vous suggérez donc que je doive introduire la logique UUID externe via le service que vous avez mentionné? Mais ce serait pour la génération. Puis-je également enregistrer une entité avec un UUID donné?
Stefan
Désolé, je ne l'ai pas encore essayé. C'est pourquoi je demandais à l'origine une documentation, donc je peux faire des recherches.
Stefan
Je ne suis pas sûr de comprendre. Notez que je parle d'un service d'injection de dépendances (Symfony), pas d'un service Web. Oui, vous pouvez enregistrer des entités avec votre propre UUID si vous en avez déjà un, passez-le simplement à YourEntity :: create () comme valeur initiale.
Berdir
D'accord, merci. Savez-vous où je peux obtenir plus d'informations à ce sujet, en plus de l'API? Parce qu'il est quelque peu difficile de comprendre toute l'image en regardant l'API.
Stefan
1
Je ne sais pas quelle image vous voulez dire, car je ne comprends toujours pas ce que vous essayez de faire. Il n'y a vraiment rien de plus à dire sur le composant / service UUID lui-même, il ne fait que générer et valider les UUID. Si cela ne répond pas à votre question, alors vous avez peut-être posé la mauvaise question :) Essayez de demander exactement ce que vous essayez de réaliser, peut-être en tant que nouvelle question. Parce qu'il se peut que votre question ne concerne pas tant l'UUID que la façon dont l'entité ou peut-être le module REST utilise les UUID. Salut à tous les Suisses :)
Berdir
1

Pour générer uuid avec drush:

drush php-eval "echo \Drupal::service('uuid')->generate();"
écho
la source