แน่นอนว่าคุณจะต้องทำเบนช์มาร์กโมดูลของคุณเพื่อให้ได้คำตอบที่แน่นอน แต่โดยทั่วไปแล้ว ประโยชน์ของการแบ่งโค้ดที่ซับซ้อนออกเป็นหลายๆ โมดูลโดยแยกตามฟังก์ชันคือหนทางที่เหมาะสม
ผลกระทบด้านประสิทธิภาพของการเรียกเบ็ดนั้นน้อยมาก ผลกระทบด้านประสิทธิภาพที่มากขึ้นจะเป็นโค้ดอะไรก็ตามที่ hook ทำงาน
จำนวนโมดูลไม่สำคัญเท่ากับรหัสที่โมดูลกำลังเรียกใช้
หลักฐาน: การย้ายจาก Drupal 7 เป็น Drupal 8/9 โมดูล Drupal ที่สำคัญจำนวนมากได้เปลี่ยนจาก "ลดจำนวนโมดูลให้น้อยที่สุด" เป็น "มีโมดูลเฉพาะฟังก์ชันอีกมากมายที่สามารถเปิดใช้งานได้ตามต้องการ":
- AdvAgg
- พาณิชย์
- เมตาแท็ก
- เว็บฟอร์ม
TLDR: โค้ดจริงที่คุณเรียกใช้ใน hooks/modules มีความสำคัญต่อประสิทธิภาพมากกว่าการที่คุณเรียก hooks หลายครั้งในโมดูล
อย่างไรก็ตาม สิ่งหนึ่งที่คุณต้องระวังก็คือ หากคุณจัดระเบียบโมดูลของคุณไม่ดี คุณสามารถลงเอยด้วยการเพิ่มโค้ดที่กำหนดเองใน hook เดียวกันในหลายโมดูล ซึ่งอาจส่งผลให้เกิดข้อบกพร่องได้ เช่น หากคุณกำลังเปลี่ยนฟิลด์เดียวกันใน hook_entity_update ()
. ดังนั้น ตรวจสอบให้แน่ใจว่าคุณจัดระเบียบโค้ดของคุณในลักษณะที่ทำให้ชัดเจนว่าโมดูลใดรับผิดชอบฟังก์ชันใด
ในฐานะนักพัฒนา การบำรุงรักษาโมดูลแบบกำหนดเองนั้นง่ายกว่าแน่นอนเมื่อแยกตามฟังก์ชัน โดยเฉพาะอย่างยิ่งในกรณีที่คุณต้องใช้ฟังก์ชัน/โมดูลบางส่วน แต่ไม่ใช่ทั้งหมดในหลายไซต์