ความแตกต่างระหว่าง. inc และ. โมดูล?


23

ฉันพยายามที่จะคิดออกว่าแตกต่างที่สำคัญคือระหว่างและmymodule.modulemymodule.admin.inc

ใครช่วยอธิบายได้บ้าง

คำตอบ:


20

Drupal เข้าใจดีว่าไฟล์โมดูลเป็นโมดูลภายในระบบโดยไม่ต้องเข้าไปหาข้อมูลเพิ่มเติม สัญกรณ์. inc ถูกใช้ในไฟล์ PHP สำหรับไฟล์ 'include' เสมอ เมื่อพัฒนาโมดูลคุณอาจต้องการแยกการทำงานเป็นไฟล์. inc

โมดูลที่ใช้ในบางกรณีใช้การประชุมที่คล้ายกับ. admin.inc โดยทั่วไปไฟล์ดังกล่าวจะมีรหัสทั้งหมดที่จำเป็นในการเรียกใช้ส่วนต่อประสานกับผู้ดูแลระบบและไฟล์ node.pages.inc เช่นมีรหัสที่เรียกใช้สำหรับการเรียกกลับเมนูอื่น ๆ


16

การเพิ่มไปยังคำตอบที่กำหนดโดย Alex Gill

  1. ไฟล์. โมดูลจะถูกโหลดในทุก ๆ หน้าโหลดในขณะที่ไฟล์. inc จะถูกโหลดเมื่อมีการร้องขอเท่านั้น
  2. ตามแบบแผน. ไฟล์โมดูลควรมีฟังก์ชั่นเหล่านั้นเท่านั้นซึ่งมีการใช้งาน hooks การปฏิบัติตามมาตรฐานนี้จะปรับปรุงประสิทธิภาพเช่นกัน
  3. ไฟล์ .inc สามารถรวมโดยกล่าวถึงเส้นทางในhook_menu()หรือโดยการใช้อย่างชัดเจนmodule_load_include ( 'Inc', 'โหน', 'node.admin')
  4. หากไฟล์. inc ใด ๆ มีคลาสอ็อบเจ็กต์ควรถูกกล่าวถึงในไฟล์. info ของโมดูล

8

กล่าวโดยย่อ mymodule.module เป็นไฟล์ php ที่ drupal โหลดโดยอัตโนมัติเมื่อเปิดใช้งานโมดูลนั้น จากนั้นสามารถรวมไฟล์อื่น ๆ เมื่อจำเป็น โดยปกติ mymodule.admin.inc รวมอยู่ในการสร้างเมนูการตั้งค่าผู้ดูแลระบบ หากคุณ grep ผ่าน mymodule.module คุณสามารถดูได้ที่ไหน บางครั้งเมื่อโมดูลมีความซับซ้อนมากขึ้นก็จะถูกแบ่งออกเป็นไฟล์ขนาดเล็กกว่าและรวมอยู่ด้วย


2
มีไฟล์อื่น ๆ ที่ Drupal ทำการโหลดโดยอัตโนมัติและไฟล์เหล่านั้นไม่ใช่ไฟล์ที่มีนามสกุล. โมดูล ที่จริงแล้ว Drupal จะทำการโหลดไฟล์. inc โดยอัตโนมัติ ดังนั้นจึงไม่สามารถใช้เพื่อแยกความแตกต่างไฟล์. mod และไฟล์. inc
kiamlaluno

0

ความแตกต่างระหว่างไฟล์โมดูลและไฟล์ inc

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

ตัวอย่างเช่น hook_node_load, hook_form_alter ต้องอยู่ในไฟล์. โมดูล


ที่ไม่แยกความแตกต่างของสองไฟล์เนื่องจากทั้งสองโหลดโดยอัตโนมัติเมื่อเปิดใช้งานโมดูล สำหรับ. inc hook_node_load นอกจากนี้ยังสามารถเรียกได้จากไฟล์.
inc

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