ฉันดูเหมือนจะพัฒนาโปรแกรมเสริมไปยังโมดูลจำนวนมากที่ใช้Entity APIในขณะนี้และentity_metadata_wrapper()
ฟังก์ชั่นยังคงปรากฏขึ้นเรื่อย ๆ
หน้าเอกสารบอกว่านี่เกี่ยวกับมัน
ส่งคืน wrapper คุณสมบัติสำหรับข้อมูลที่กำหนด
หากเอนทิตีถูกห่อคุณสามารถใช้ wrapper เพื่อดึง wrapper เพิ่มเติมสำหรับคุณสมบัติการให้สิทธิ์
การเพิกเฉยต่อการสะกดคำของ Freudian อย่างน่าพิศวงของคำว่า 'เอนทิตี' ในนั้นฉันไม่เข้าใจจริงๆว่าจุดประสงค์ของสิ่งห่อหุ้มเหล่านี้คืออะไร
ฉันเข้าใจว่าฟังก์ชันนั้นคืนค่าEntityDrupalWrapper
คลาสเป็นหลัก:
wrapper ลดการใช้การเรียก getter และ setter ของคุณสมบัติเอนทิตี
แต่สิ่งที่ฉันไม่เข้าใจคือวิธีที่ทำให้สิ่งต่าง ๆ ง่ายขึ้น
ตัวอย่างเช่นเพื่ออัปเดตคุณสมบัติสถานะของโหนดฉันสามารถใช้รหัสนี้:
$node = node_load($nid);
$node->status = 1;
node_save($node);
มันค่อนข้างสะอาด ตามที่ฉันเข้าใจ (แต่อาจจะผิด) การใช้โค้ดที่เทียบเท่าentity_metadata_wrapper()
จะมีความละเอียดมากกว่านั้น
ฉันไม่แน่ใจว่าเป็นเพียงแค่การใช้คำว่า 'wrapper' ที่ทำให้ฉันสะดุดที่นี่ แต่ฉันได้ดูรหัสในโมดูล Entity ด้วยและฉันก็ไม่ได้เข้าใจอะไรมากขึ้น
ใครบ้างสามารถอธิบายว่าประโยชน์ของการใช้ฟังก์ชั่นนี้คืออะไรและอาจให้ตัวอย่างรหัสง่ายๆสำหรับกรณีใช้งานทั่วไป