Entitas di Drupal 7


13

Apa yang dimaksud dengan Entitas Drupal di Drupal 7? Saya mengerti bahwa Drupal Commerce membangun Produk sebagai Entitas. Saya tahu sekarang ada API Entitas inti dan contrib add on untuk Entity API.

Saya memiliki beberapa proyek tahun ini di mana saya ingin menggunakan Drupal 7, NoSQL dan mungkin API Entitas jika diperlukan - tetapi saya kesulitan melihat di mana itu akan diperlukan.

Dengan asumsi Anda sedang membangun situs daftar pekerjaan - pekerjaan tidak selalu seperti konten simpul, dapatkah Anda membuat Entitas itu?

Selain itu, dapatkah Anda masih mendapatkan kemampuan untuk berbicara dengan modul dengan Entity dan bagaimana hal itu dilakukan? Seperti, entitas Posting Pekerjaan mendapatkan alias dengan Pathauto dan diekspos dalam Tampilan serta muncul dalam XML Sitemap.

Jawaban:


9

Entitas adalah struktur data yang ditentukan oleh hook_entity_info () dan dapat diisi dengan bidang, yang berarti Anda bisa menambahkan bidang ke dalamnya.

Dalam Drupal 7 Core, Node, Pengguna, Komentar, Kosakata, dan Ketentuan adalah entitas.

Di Contrib, ada banyak lagi, misalnya pesan pribadi dan perdagangan seperti selusin dari mereka;)

Namun, saya pikir posting pekerjaan baik-baik saja sebagai node :) Entitas tidak secara otomatis memiliki Pathauto (Token), Views dll integrasi.


9

Entitas adalah tingkat meta di atas node, pengguna, dll.

Pada dasarnya jika Anda melihat D6, ada banyak modul duplikat, dan fungsionalitas di semua jenis hal ini. Misalnya ada modul untuk melampirkan bidang cck ke pengguna dan istilah taksonomi.

Di D7 keputusan dibuat untuk memperlakukan ini dengan cara yang sama, secara arsitektur, jadi jika Anda memiliki modul yang melakukan sesuatu pada entitas, itu harus bekerja untuk node, istilah dan pengguna.

Dalam versi Drupal sebelumnya, modul seperti Commerce akan memiliki dua opsi, untuk membangun jenis simpul khusus, atau untuk sepenuhnya keluar dari sistem internal Drupal dan menentukan jenis barang mereka sendiri. Dengan entitas, dimungkinkan untuk menggambarkan Produk sebagai jenis barang, berbeda dari jenis yang ada, tetapi masih memanfaatkan fitur seperti bidang dalam makeup mereka.

Dengan asumsi Anda sedang membangun situs daftar pekerjaan - pekerjaan tidak selalu seperti konten simpul, dapatkah Anda membuat Entitas itu?

Anda bisa. Saya pikir Anda harus berhati-hati dalam membuat entitas terlalu cepat. Seringkali tipe simpul khusus masih akan melakukan apa yang Anda inginkan. Apakah suatu pekerjaan mencantumkan jenis hal yang berbeda ke suatu simpul, atau apakah suatu simpul dengan beberapa sifat khusus?


3

Saya sudah mulai menggunakan entitas di beberapa proyek saya untuk hal-hal yang tidak benar-benar "konten". Kami menggunakannya untuk hal-hal di mana kami tidak begitu peduli ketika itu diterbitkan atau siapa penulisnya.

Manfaat nyata dari mendefinisikan entitas adalah jika Anda mengembangkan modul khusus Anda sendiri. Anda mendapatkan struktur tabel yang bagus dan banyak kebaikan Drupal (Fieldability, integrasi Views, ...) gratis. Tidak ada lagi membuat struktur tabel kustom Anda sendiri atau perkuatan jenis node untuk kebutuhan Anda. Juga, saya suka betapa ringannya mereka sehingga entitas yang berkinerja baik harus lebih baik. Jika Anda telah melakukan kueri di D6 dengan node Anda akan mengerti apa yang saya maksud.


1

Node, pengguna, taksonomi adalah contoh entitas Drupal. Fitur utama dari suatu entitas adalah bahwa ia dapat ditugaskan ke entitas lain: pengguna dikaitkan dengan node, dan taksonomi dapat ditugaskan ke node, dan pengguna.

Jika apa yang Anda gambarkan sebagai pekerjaan dapat ditetapkan untuk pengguna, atau simpul, maka saya akan menjadikannya entitas. Jika apa yang Anda dapat "pekerjaan" hanyalah tipe konten, maka saya tidak akan menjadikannya entitas.


1

Jika Anda ingin mengatakan itu dalam beberapa kata, Anda dapat mengatakan bahwa en entitas hanyalah sepotong data yang disadari oleh drupal, dan dapat disimpan di mana saja.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.