Unterschied zwischen .inc und .module?

23

Ich versuche herauszufinden, was der Hauptunterschied zwischen mymodule.moduleund ist mymodule.admin.inc.

Kann es jemand erklären?

Saadlulu
quelle

Antworten:

20

Ohne auf die Details einzugehen, versteht Drupal die .module-Datei als ein Modul innerhalb des Systems. Die .inc-Notation wurde in PHP immer für Include-Dateien verwendet. Wenn Sie Module entwickeln, möchten Sie möglicherweise die Funktionalität in verschiedene .inc-Dateien aufteilen.

In bestimmten Fällen verwendete Module verwenden ähnliche Konventionen wie .admin.inc. Diese Datei enthält normalerweise den gesamten Code, der zum Ausführen der Verwaltungsschnittstelle erforderlich ist, und eine Datei node.pages.inc enthält beispielsweise den Code, der für andere Menürückrufe ausgeführt wird.

Alex Gill
quelle
16

Erweiterung der Antwort von Alex Gill

  1. Moduldateien werden auf jeder Ladeseite geladen, während INC-Dateien nur geladen werden, wenn sie angefordert werden.
  2. Gemäß der Konvention sollten .module-Dateien nur die Funktionen enthalten, bei denen es sich um die Implementierung von Hooks handelt. Das Befolgen dieses Standards verbessert auch die Leistung.
  3. .inc-Dateien können durch Erwähnen des Pfads in hook_menu()oder durch explizites Verwenden von module_load_include ('inc', 'node', 'node.admin') eingeschlossen werden .
  4. Wenn eine der .inc-Dateien Klassenobjekte enthält, sollte dies in der .info-Datei des Moduls erwähnt werden.
Gokul NK
quelle
8

Kurz gesagt, mymodule.module ist die PHP-Datei, die Drupal automatisch lädt, wenn dieses Modul aktiviert ist. Bei Bedarf können dann andere Dateien hinzugefügt werden. Normalerweise ist mymodule.admin.inc enthalten, um das Menü für die Administratoreinstellungen zu erstellen. Wenn Sie durch mymodule.module blättern, können Sie sehen, wo. Manchmal, wenn ein Modul ziemlich komplex wird, wird es in kleinere Dateien aufgeteilt und diese werden ebenfalls einbezogen.

Jimajamma
quelle
2
Es gibt andere Dateien, die Drupal automatisch lädt, und dies sind keine Dateien mit der Erweiterung .module. Tatsächlich lädt Drupal automatisch auch .inc-Dateien. Daher kann dies nicht zur Unterscheidung von .module- und .inc-Dateien verwendet werden.
kiamlaluno
0

Unterschied zwischen Moduldatei und Inc-Datei

  • Die .module-Datei kann von Drupal bei jedem Seitenaufruf geladen werden. Die Funktion in der Moduldatei kann in einer anderen Moduldatei ohne das betreffende Modul verwendet werden (* muss jedoch aktiviert werden, und es müssen Abhängigkeiten hinzugefügt werden).
  • .inc Datei kann manuell geladen werden. Es muss bestimmte Seitenfunktionen enthalten.

Zum Beispiel muss sich hook_node_load, hook_form_alter in der .module-Datei befinden.

Ramesh Babu TB
quelle
Das unterscheidet die beiden Dateien nicht, da beide automatisch bei Aktivierung des Moduls geladen werden. Wie für .inc kann hook_node_load auch aus einer .inc-Datei aufgerufen werden
saadlulu
Die .inc-Datei ist möglicherweise in der zugehörigen Moduldatei enthalten. Die Funktionstrennung kann vom .inc vorgenommen werden, damit der Benutzer dies versteht.
Ramesh Babu TB