“ Entity API” เพิ่มอะไรให้กับ Drupal API และทำไมโมดูลถึงขึ้นอยู่กับมัน


12

Entity APIโมดูลขยาย API นิติบุคคลที่กำหนดไว้ใน Drupal โมดูลใดที่ควรใช้ API ที่มีให้จากโมดูลนั้น โมดูลที่ใช้เอนทิตีใหม่ง่ายกว่าที่จะเขียนหรือไม่หากขึ้นอยู่กับโมดูลEntity API

โดย "ง่ายต่อการเขียน" ผมหมายความว่าโมดูลที่ใช้Entity APIจะต้องมีรหัสน้อยที่จะถูกเขียนขึ้นเมื่อเทียบกับโมดูลที่ไม่ได้ใช้Entity API

ฉันอ่านหน้าโครงการ แต่ฉันก็ยังไม่เข้าใจเหตุผลที่ต้องการสร้างโมดูลที่ขึ้นอยู่กับโมดูลEntity APIแทนที่จะเป็นโมดูลที่ขึ้นอยู่กับรหัสหลักของ Drupal เท่านั้น ฉันเข้าใจว่าโมดูลที่ขยายกฎและการใช้งานเอนทิตีควรใช้โมดูลEntity API ในกรณีแรกเหตุผลก็คือการที่กฎโมดูลขึ้นอยู่กับEntity APIโมดูล


1
หน้าโครงการที่คุณเชื่อมโยงจะให้ภาพรวมที่ค่อนข้างเฉพาะเจาะจงเกี่ยวกับสิ่งที่โมดูลทำ คุณมีคำถามเฉพาะเกี่ยวกับสาเหตุที่โมดูลจะขึ้นอยู่กับมันนอกเหนือจากสิ่งที่พวกเขาอยู่ที่นั่น?
jhedstrom

หากคุณไม่ได้ใช้โมดูล Entity API คุณจะต้องเขียนโมดูลเช่นโครงการแซนด์บ็อกซ์นี้ โปรดทราบว่าโครงการแซนด์บ็อกซ์นี้ไม่มีการทดสอบและมีผู้สนับสนุนเพียงรายเดียวในขณะที่ Entity API มีทั้งสองอย่าง
paul-m

คำตอบ:


15

ไม่สมบูรณ์ แต่นี่คือข้อดีที่ฉันรู้:

  • Drupal core จะให้ EntityController สำหรับการโหลดเอนทิตีเท่านั้น สำหรับการบันทึกอัปเดตและลบคุณต้องเขียนเองหรือใช้ Entity API
  • คุณสามารถแสดงคุณสมบัติพื้นฐานของเอนทิตีของคุณด้วย hook_entity_property_info () ดูที่privatemsg_entity_property_info ()สำหรับตัวอย่าง ข้อดีของสิ่งนี้คือ rules.module รู้จักคุณสมบัติเอนทิตีของคุณและคุณอ่านและเขียนกฎเหล่านั้นด้วย และคุณยังได้รับการรวมโทเค็นฟรี
  • นอกจากนี้ยังสามารถมอบ UI การดูแลระบบให้แก่คุณโดยอัตโนมัติ

ผู้ดูแลระบบ UI หมายถึงอะไร บางส่วนนี้ได้รับการจัดการโดยแกน
googletorp

2
แกนนำเสนอ UI เพื่อกำหนดค่าเขตข้อมูลและแนบไปกับเอนทิตี API เอนทิตีให้ UI เพื่อสร้างและจัดการเอนทิตีสำหรับเอนทิตีที่กำหนดเองแกนทำอะไรเช่นนั้น
Berdir

1
ที่จะไม่ลืม metadata_wrapper ที่ยิ่งใหญ่drupalcontrib.org/api/drupal/ …ที่ช่วยให้คุณสามารถเข้าถึงค่าของเขตข้อมูลในรหัสได้อย่างง่ายดาย
mojzis

7

การรวมมุมมองอัตโนมัติ, UI ของผู้ดูแลระบบ, เอนทิตีที่ส่งออกได้ (ทั้งหมดนี้เป็นตัวเลือก) นอกจากนี้ยังมีสิ่งต่าง ๆ เกี่ยวกับไวยากรณ์ของน้ำตาลที่ไม่ได้ทำให้เป็น D7 และคุณต้องการมัน (เอนทิตีทั่วไป_save (), เอนทิตี _Create (), วางตรรกะที่กำหนดเองของคุณใน "เอนทิตี้คลาส" ... )

นอกจากนี้โมดูล (efq_views กฎ) ทำสิ่งที่ยอดเยี่ยมด้วยคุณสมบัติ


-1

ฉันเชื่อว่าเอนทิตี API (โมดูล) ถูกลบโดยทั่วไปจาก drupal 7 คอร์ก่อนที่จะปล่อยเพราะมันถือว่าไม่สมบูรณ์ .. เฉพาะเอนทิตีพื้นฐาน API ฟังก์ชั่น CRUD ที่เหลืออยู่ในแกน drupal สำหรับการเปิดตัวจีเอ็ม

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.