Bagaimana saya bisa menggunakan UUID API?

9

Saya sadar bahwa pertanyaannya adalah (hampir) duplikat dari pertanyaan berikut # 21991 , yang telah diposting kembali pada tahun 2012. Tetapi pertanyaan itu TIDAK terkait dengan Drupal 8, di mana UUID berada di intinya.

Referensi:

Dokumentasi Modul Inti Drupal 8 tidak mencantumkan UUID.

Saya ingin tahu apakah saya dapat memanfaatkan modul UUID inti Drupal 8 untuk bermigrasi dan memetakan data relasional yang diimpor dari lingkungan yang berbeda, yang memiliki kunci unik yang dihasilkan oleh Firebase.

Memperbarui:

Telah ditunjukkan dengan baik bahwa UUID bukan modul.

Tampaknya membuat catatan UUID per default untuk entitas (alias node) dan tampaknya dapat digunakan untuk memetakan referensi entitas.

Bisakah saya memanfaatkan ini ketika saya memperkenalkan data eksternal, yang sudah memiliki ID unik? Jadi saya punya ID "simpul" dan dapat memetakan dengan UUID?

Pembaruan berdasarkan komentar lebih lanjut:

Tujuannya adalah untuk menggunakan UUID dengan entitas dan modul REST. Masing-masing, tampaknya masuk akal untuk melakukannya ketika mengimpor data relasional eksternal, yang sudah memiliki ID unik.

Saya hanya mencoba memahami bagaimana UUID bekerja, apa yang bisa dilakukan dan apa yang tidak, bagaimana saya bisa menghasilkan dan memvalidasi UUID, apa yang perlu saya ketahui, jika saya memperkenalkan ID eksternal.

Stefan
sumber

Jawaban:

10

Saya berasumsi apa yang ingin Anda ketahui adalah bagaimana menghasilkan UUID di Drupal 8, karena sebenarnya tidak banyak hal lain yang dapat Anda lakukan;)

Semua entitas memiliki UUID secara otomatis, jadi jika Anda menyimpan data Anda sebagai konfigurasi atau entitas konten, Anda hanya perlu mendefinisikan kunci entitas uuid.

Untuk menghasilkan UUID sendiri, Anda memerlukan layanan uuid:

$uuid = \Drupal::service('uuid');
$uuid->generate();
$uuid->isValid($uuid_to_validate);
Berdir
sumber
Terima kasih. Saya mengerti sejauh ini, bahwa mereka dihasilkan secara otomatis. Jadi Anda menyarankan saya untuk memperkenalkan logika UUID eksternal melalui layanan yang Anda sebutkan? Tapi itu untuk generasi. Bisakah saya juga menyimpan entitas dengan UUID yang diberikan?
Stefan
Maaf, saya belum mencobanya. Karena itulah saya awalnya meminta dokumentasi, jadi saya bisa melakukan riset.
Stefan
Saya tidak yakin saya mengerti. Perhatikan bahwa saya sedang berbicara tentang layanan injeksi Ketergantungan (Symfony), bukan layanan web. Ya, Anda dapat menyimpan entitas dengan UUID Anda sendiri jika sudah memilikinya, cukup serahkan ke YourEntity :: create () sebagai nilai awal.
Berdir
Oke terima kasih. Apakah Anda tahu di mana saya bisa mendapatkan informasi lebih lanjut tentang ini, selain API? Karena agak sulit untuk mengetahui keseluruhan gambar hanya dengan melihat API.
Stefan
1
Tidak yakin gambar yang Anda maksud karena masih tidak jelas bagi saya apa yang Anda coba lakukan. Sebenarnya tidak ada lagi yang bisa dikatakan tentang komponen / layanan UUID itu sendiri, ia tidak menghasilkan apa-apa selain menghasilkan dan memvalidasi UUID. Jika itu tidak menjawab pertanyaan Anda, maka mungkin Anda mengajukan pertanyaan yang salah :) Coba tanyakan apa yang ingin Anda capai, mungkin sebagai pertanyaan baru. Karena mungkin pertanyaan Anda bukan tentang UUID, melainkan tentang bagaimana entitas atau mungkin modul REST menggunakan UUID. Juga, hai sesama orang Swiss :)
Berdir
1

Untuk menghasilkan uuid dengan drush:

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