Come posso usare l'API UUID?


9

Sono consapevole che la domanda è (quasi) un duplicato della seguente domanda n. 21991 , che è stata pubblicata nel 2012. Ma quella domanda NON è correlata a Drupal 8, in cui UUID è al centro.

Riferimenti:

La documentazione del modulo principale di Drupal 8 non elenca l'UUID.

Mi chiedo se potrei sfruttare il modulo UUID principale di Drupal 8 per migrare e mappare i dati relazionali importati da un ambiente diverso, che ha chiavi uniche generate da Firebase.

Aggiornare:

È stato gentilmente sottolineato che UUID non è un modulo.

Sembra creare record UUID per impostazione predefinita per le entità (aka nodi) e apparentemente può essere utilizzato per mappare i riferimenti di entità.

Posso farne uso quando introduco dati esterni, che hanno già ID univoci? Quindi ho gli ID "nodo" e posso mappare con gli UUID?

Aggiornamento basato su ulteriori commenti:

L'obiettivo è utilizzare l'UUID con le entità e il modulo REST. Rispettivamente, sembra sensato farlo quando si importano dati relazionali esterni, che hanno già ID univoci.

Cerco solo di capire come funziona l'UUID, cosa può fare e cosa no, come posso generare e convalidare l'UUID, di cosa devo essere consapevole se introduco ID esterni.

Risposte:


10

Suppongo che ciò che vuoi sapere sia come generare un UUID in Drupal 8, perché non c'è davvero molto altro che puoi fare;)

Tutte le entità hanno automaticamente un UUID, quindi se memorizzi i tuoi dati come entità di configurazione o di contenuto, devi solo definire la chiave dell'entità uuid.

Per generare un UUID tu stesso, hai bisogno del servizio uuid:

$uuid = \Drupal::service('uuid');
$uuid->generate();
$uuid->isValid($uuid_to_validate);

Grazie. Finora capisco che vengono generati automaticamente. Quindi mi suggerisce che devo introdurre la logica UUID esterna tramite il servizio che hai citato? Ma sarebbe per generazione. Posso anche salvare un'entità con un determinato UUID?
Stefan

Scusa, non l'ho ancora provato. Ecco perché inizialmente stavo chiedendo una documentazione, quindi posso fare qualche ricerca.
Stefan

Non sono sicuro di capire. Si noti che sto parlando di un servizio di iniezione di dipendenza (Symfony), non di un servizio Web. Sì, puoi salvare entità con il tuo UUID se ne hai già uno, passalo a YourEntity :: create () come valore iniziale.
Berdir,

Ok grazie. Sai dove posso ottenere ulteriori informazioni al riguardo, oltre all'API? Perché è un po 'difficile capire l'intera immagine solo guardando l'API.
Stefan

1
Non sono sicuro di quale immagine intendi perché non mi è ancora chiaro cosa stai cercando di fare. Non c'è davvero altro da dire sul componente / servizio UUID stesso, non fa altro che generare e convalidare l'UUID. Se questo non risponde alla tua domanda, forse hai fatto la domanda sbagliata :) Prova a chiedere esattamente cosa stai cercando di ottenere, possibilmente come una nuova domanda. Perché potrebbe essere che la tua domanda non riguardi tanto l'UUID quanto il modo in cui l'entità o forse il modulo REST sta usando l'UUID. Inoltre, ciao compagno svizzero :)
Berdir

1

Per generare uuid con drush:

drush php-eval "echo \Drupal::service('uuid')->generate();"
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.