Como posso usar a API UUID?

9

Estou ciente de que a pergunta é (quase) uma duplicata da pergunta nº 21991 , que foi postada em 2012. Mas essa pergunta NÃO está relacionada ao Drupal 8, onde o UUID está no centro.

Referências:

A documentação do Drupal 8 Core Module não lista o UUID.

Será que eu poderia aproveitar o módulo UUID do Drupal 8 para migrar e mapear dados relacionais importados de um ambiente diferente, que possui chaves exclusivas geradas pelo Firebase.

Atualizar:

Foi gentilmente indicado que o UUID não é um módulo.

Parece criar registros UUID por padrão para entidades (também conhecidos como nós) e aparentemente pode ser usado para mapear referências de entidades.

Posso fazer uso disso quando introduzo dados externos que já possuem IDs exclusivos? Então, eu tenho os IDs de "nó" e posso mapear com os UUIDs?

Atualização com base em outros comentários:

O objetivo é usar o UUID com entidades e o módulo REST. Respectivamente, parece sensato fazer isso ao importar dados relacionais externos, que já possuem IDs exclusivos.

Eu apenas tento entender como o UUID funciona, o que ele pode fazer e o que não, como eu posso gerar e validar os UUIDs, do que eu preciso estar ciente, se eu introduzir IDs externos.

Stefan
fonte

Respostas:

10

Presumo que você queira saber como gerar um UUID no Drupal 8, porque realmente não há muito mais que você possa fazer;)

Todas as entidades têm um UUID automaticamente, portanto, se você armazenar seus dados como uma entidade de configuração ou conteúdo, basta definir a chave da entidade uuid.

Para gerar um UUID, você precisa do serviço uuid:

$uuid = \Drupal::service('uuid');
$uuid->generate();
$uuid->isValid($uuid_to_validate);
Berdir
fonte
Obrigado. Eu entendo até agora, que eles são gerados automaticamente. Então você sugere que eu tenha que introduzir a lógica UUID externa através do serviço que você mencionou? Mas isso seria para geração. Também posso salvar uma entidade com um determinado UUID?
Stefan
Desculpe, eu ainda não tentei. Por isso, originalmente solicitei uma documentação, para poder fazer alguma pesquisa.
274 Stefan #
Eu não tenho certeza se entendi. Observe que estou falando de um serviço de injeção de dependência (Symfony), não de um serviço da web. Sim, você pode salvar entidades com seu próprio UUID, se você já tiver um, basta passá-lo para YourEntity :: create () como um valor inicial.
Berdir
Ok obrigado. Você sabe onde posso obter mais informações sobre isso, além da API? Porque é um pouco difícil descobrir a imagem inteira apenas olhando para a API.
Stefan
11
Não tenho certeza de qual imagem você quer dizer, pois ainda não está claro para mim o que você está tentando fazer. Realmente não há mais nada a dizer sobre o componente / serviço UUID, ele não faz nada além de gerar e validar UUIDs. Se isso não responder à sua pergunta, talvez você tenha feito a pergunta errada :) Tente perguntar exatamente o que você está tentando alcançar, possivelmente como uma nova pergunta. Porque pode ser que sua pergunta não seja tanto sobre UUID, mas sobre como a entidade ou o módulo REST estão usando UUIDs. Além disso, oi companheiro suíço :)
Berdir 04/04
1

Para gerar uuid com drush:

drush php-eval "echo \Drupal::service('uuid')->generate();"
eco
fonte