Saya sepertinya sedang mengembangkan add-on untuk banyak modul yang menggunakan API Entity saat ini, dan entity_metadata_wrapper()
fungsinya terus bermunculan.
The halaman docs mengatakan ini tentang hal itu:
Mengembalikan pembungkus properti untuk data yang diberikan.
Jika suatu entitas terbungkus, pembungkus dapat digunakan untuk mengambil pembungkus lebih lanjut untuk properti entitity.
Mengabaikan ejaan Freudian yang luar biasa dari kata 'entitas' di sana, saya tidak benar-benar mengerti apa tujuan dari pembungkus ini.
Saya mengerti bahwa fungsi dasarnya mengembalikan EntityDrupalWrapper
kelas:
Wrapper memudahkan menerapkan callback pengambil dan penyetel properti entitas
Tetapi yang tidak saya mengerti adalah bagaimana hal itu membuat segalanya menjadi lebih mudah.
Sebagai contoh, untuk memperbarui properti status dari sebuah node saya dapat menggunakan kode ini:
$node = node_load($nid);
$node->status = 1;
node_save($node);
Cukup bersih. Seperti yang saya pahami (tapi mungkin salah) menggunakan kode yang setara entity_metadata_wrapper()
akan lebih verbose dari itu.
Saya tidak yakin apakah itu hanya penggunaan istilah 'pembungkus' yang membuat saya tersandung di sini, tetapi saya telah melihat kode dalam modul Entity juga dan saya tidak benar-benar lebih dekat untuk memahaminya.
Adakah yang bisa menjelaskan apa manfaat dari menggunakan fungsi ini, dan mungkin memberikan contoh kode sederhana untuk kasus penggunaan umum?