Как я могу использовать UUID API?

9

Мне известно, что этот вопрос (почти) является дубликатом следующего вопроса № 21991 , который был опубликован еще в 2012 году. Но этот вопрос НЕ связан с Drupal 8, где UUID находится в ядре.

Ссылки:

В документации по базовому модулю Drupal 8 нет UUID.

Интересно, смогу ли я использовать основной модуль UUID Drupal 8 для миграции и отображения реляционных данных, импортированных из другой среды, которая имеет уникальные ключи, сгенерированные Firebase.

Обновить:

Было любезно указано, что UUID не является модулем.

По-видимому, для объектов (то есть узлов) создаются записи UUID по умолчанию, и, по-видимому, их можно использовать для сопоставления ссылок на объекты.

Могу ли я использовать это при вводе внешних данных, которые уже имеют уникальные идентификаторы? Таким образом, у меня есть идентификаторы "узла" и я могу сопоставить с UUID?

Обновление на основе дальнейших комментариев:

Цель состоит в том, чтобы использовать UUID с сущностями и модулем REST. Соответственно, это представляется целесообразным при импорте внешних реляционных данных, которые уже имеют уникальные идентификаторы.

Я просто пытаюсь понять, как работает UUID, что он может делать, а что нет, как я могу генерировать и проверять UUID, что мне нужно знать, если я ввожу внешние идентификаторы.

Стефан
источник

Ответы:

10

Я предполагаю, что вы хотите знать, как сгенерировать UUID в Drupal 8, потому что на самом деле вы ничего не можете сделать;)

Все объекты имеют UUID автоматически, поэтому, если вы сохраняете свои данные в виде объекта конфигурации или содержимого, вам просто нужно определить ключ объекта UUID.

Чтобы сгенерировать UUID самостоятельно, вам нужен сервис uuid:

$uuid = \Drupal::service('uuid');
$uuid->generate();
$uuid->isValid($uuid_to_validate);
Berdir
источник
Спасибо. Пока я понимаю, что они генерируются автоматически. Итак, вы предлагаете мне ввести внешнюю логику UUID через службу, которую вы упомянули? Но это было бы для поколения. Могу ли я также сохранить объект с указанным UUID?
Стефан
Извините, я еще не пробовал. Вот почему я изначально просил документацию, чтобы я мог провести некоторые исследования.
Стефан
Я не уверен, что понимаю. Обратите внимание, что я говорю о сервисе внедрения зависимостей (Symfony), а не о веб-сервисе. Да, вы можете сохранить сущности с вашим собственным UUID, если у вас уже есть, просто передайте его YourEntity :: create () в качестве начального значения.
Бердир
Хорошо спасибо. Вы знаете, где я могу получить больше информации об этом, кроме API? Потому что довольно сложно понять всю картину, просто глядя на API.
Стефан
1
Не уверен, какую картину ты имеешь в виду, так как мне все еще не ясно, что ты пытаешься сделать. На самом деле больше нечего сказать о самом компоненте / услуге UUID, он только генерирует и проверяет UUID. Если это не отвечает на ваш вопрос, то, возможно, вы задали неправильный вопрос :) Попробуйте задать именно то, что вы пытаетесь достичь, возможно, в качестве нового вопроса. Возможно, ваш вопрос не столько об UUID, сколько о том, как сущность или, возможно, модуль REST используют UUID. Кроме того, привет товарищ швейцарец :)
Бердир
1

Для генерации uuid с помощью drush:

drush php-eval "echo \Drupal::service('uuid')->generate();"
эхо
источник