如何使用UUID API?


9

我知道这个问题(几乎)与以下问题#21991重复,该问题已于2012年发布。但该问题与Drupal 8无关,后者是UUID的核心。

参考文献:

Drupal 8核心模块文档未列出UUID。

我想知道是否可以利用Drupal 8的核心UUID模块来迁移和映射从不同环境导入的关系数据,该环境具有由Firebase生成的唯一密钥。

更新:

有人指出,UUID不是模块。

似乎默认为实体(又称节点)创建UUID记录,并且显然可以用于映射实体引用。

引入已经具有唯一ID的外部数据时,可以利用此功能吗?因此,我具有“节点” ID,并且可以与UUID进行映射吗?

根据更多评论进行更新:

目标是将UUID与实体和REST模块一起使用。分别导入已具有唯一ID的外部关系数据时,这样做似乎是明智的。

我只是试图了解UUID的工作原理,它能做什么以及不能做什么,我如何生成和验证UUID,如果引入外部ID则需要注意些什么。

Answers:


10

我假设您想知道的是如何在Drupal 8中生成UUID,因为实际上您可以做的事情不多;)

实体都自动具有UUID,因此,如果将数据存储为配置或内容实体,则只需定义uuid实体键。

要自己生成一个UUID,您需要使用uuid服务:

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

谢谢。到目前为止,我了解它们是自动生成的。因此,您建议我必须通过您提到的服务来引入外部UUID逻辑?但这将是一代人。我还可以使用给定的UUID保存实体吗?
Stefan

抱歉,我还没有尝试过。这就是我最初要求提供文档的原因,因此我可以进行一些研究。
Stefan

我不确定我是否理解。请注意,我在说的是(Symfony)依赖注入服务,而不是Web服务。是的,如果您已经拥有实体,则可以使用自己的UUID保存实体,只需将其作为初始值传递给YourEntity :: create()。
贝尔迪尔

好的谢谢。除了API之外,您知道我在哪里可以获得更多信息吗?因为仅查看API很难弄清楚整个图片。
Stefan

1
我不确定您要做什么,所以不确定您的意思。关于UUID组件/服务本身,实际上没有什么可说的了,除了生成和验证UUID之外,它什么也不做。如果那不能回答您的问题,则可能您提出了错误的问题:)尝试确切地询问您要达到的目标,可能是一个新问题。因为可能您的问题不是关于UUID,而是关于实体或REST模块如何使用UUID的问题。另外,您好,瑞士同胞:)
Berdir

1

用草稿生成uuid:

drush php-eval "echo \Drupal::service('uuid')->generate();"
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.