Разница между .inc и .module?

23

Я пытаюсь выяснить, в чем главное различие между mymodule.moduleи mymodule.admin.inc.

Кто-нибудь может это объяснить?

saadlulu
источник

Ответы:

20

Не вдаваясь в подробности, Drupal понимает файл .module как модуль в системе. Нотация .inc всегда использовалась в PHP для «включаемых» файлов. При разработке модулей вы можете разделить функциональность на разные файлы .inc.

Модули, используемые в особых случаях, используют соглашения, аналогичные .admin.inc. Этот файл обычно включает в себя весь код, необходимый для запуска административного интерфейса, а файл node.pages.inc, например, содержит код, выполняемый для других обратных вызовов меню.

Алекс Гилл
источник
16

Добавляем к ответу Алекса Гилла

  1. Файлы .module загружаются на каждой странице загрузки, тогда как файлы .inc загружаются только по запросу.
  2. По соглашению файлы .module должны содержать только те функции, которые являются реализацией хуков. Следование этому стандарту также улучшает производительность.
  3. Файлы .inc можно включить, упомянув путь в hook_menu()или сделав явное использование module_load_include ('inc', 'node', 'node.admin') .
  4. Если какой-либо из файлов .inc содержит объекты класса, это следует указать в файле .info модуля.
Гокул Н.К.
источник
8

Короче говоря, mymodule.module - это php-файл, который drupal автоматически загружает, когда этот модуль включен. Затем он может включать другие файлы, когда это необходимо. Обычно mymodule.admin.inc включается для создания меню настроек администратора. Если вы перебираете mymodule.module, вы можете увидеть, где. Иногда, когда модуль становится довольно сложным, он разбивается на более мелкие файлы, и они затем включаются.

Jimajamma
источник
2
Есть другие файлы, которые Drupal автоматически загружает, и это не файлы с расширением .module. На самом деле, Drupal автоматически загружает также файлы .inc; следовательно, это нельзя использовать для разграничения файлов .module и .inc.
kiamlaluno
0

Разница между файлом модуля и файлом inc

  • Файл .module может загружаться drupal для каждой загрузки страницы. Функция в файле модуля может использоваться в другом файле модуля без включения этого модуля (* необходимо включить и добавить зависимость).
  • Файл .inc можно загрузить вручную. Он должен содержать определенные функции страницы.

Например hook_node_load, hook_form_alter должен быть в файле .module.

Рамеш Бабу ТБ
источник
это не различает два файла, так как оба загружаются автоматически при включении модуля. что касается .inc hook_node_load также может быть вызван из файла .inc
saadlulu 26.12.12
Файл .inc может быть включен в этот связанный файл модуля, а для разделения функций может быть сделано .inc для понимания пользователя.
Рамеш Бабу, ТБ,