коли слід використовувати (inc) файли в розробці модулів


10

Я думаю, я розумію структурні відмінності файлу .inc (порівняно з .module), але чи могла б хтось описати відмінності в дизайні? Я бачу приклади модулів drupal, що викликають файл .inc з прив'язкою_меню, або я бачу файл виклику .inc для визначення функцій.

  • За яких обставин можна вставити код у файл .inc? Будь-які загальні рекомендації щодо дизайну, яких деякі дотримуються?
  • Чи є якась інша перевага, ніж ясність, чому б використовувати (або кілька) .inc файл? виконання? версія?

Дякую!


1
Ви не можете отримати краще пояснення, ніж прийнята відповідь на це питання на мою думку :)
Клайв

3
особисто, якщо у мене є мод, який підтримує кілька URL-адрес або будь-якого іншого, я використовую .incURL-адресу. просто організація я здогадуюсь замість скидання випадкових функцій в один великий .moduleфайл. але як посилання на пост @ Clive - це справді лише особиста думка або те, до чого ви звикли. тут немає правильного чи неправильного.
au_stan

1
Дійсно, я використовував modulename.preprocess.inc, modulename.node.inc, modulename.menu.inc тощо, щоб розбити великі модулі на розумні шматки пов'язаних функцій, але єдина реальна причина з будь-якої точки зору продуктивності використовувати їх поза розробкою організація, ймовірно, якщо ваш модуль має деякі досить великі функції, які рідко називаються, що ви не хочете, щоб ваш двигун php розбирав кожного разу, коли він завантажений. Ви можете потім принести їх, коли це потрібно, як і те, як відбувається робота з функцією зворотного дзвінка в меню.
Jimajamma

Для того, що варто, я групую свої реактиви та допоміжні функції і класифікую їх doc-блоки, використовуючи відповідну конвенцію іменування (в CAPITALS). Тому, прокручуючи код мого модуля, я бачу поділ між різними групами функціональності. Я переглянув стандарти коментування, щоб перевірити, чи існує система вже, але я міг її побачити.
dbj44

Відповіді:


12

Як загальне правило, я б помістив у файл модуля код, який потрібен частіше (наприклад, допоміжні функції, що використовуються для більш ніж однієї функції), а в .inc файли - код, який використовується не так часто, або який використовується для конкретних сторінок.

Оскільки Drupal 6, код автоматично завантажує файли, що містять зворотні дзвінки на сторінці, або конструктори форм, які використовуються для пунктів меню. З цієї причини зворотні виклики сторінок для адміністративних сторінок зазвичай розміщуються на файлах .admin.inc, тоді як зворотний виклик сторінки для звичайних сторінок ставиться на файли .pages.inc

Починаючи з Drupal 7, файли, що містять класи, автоматично завантажуються при екземплярі класу. Drupal 7 дозволяє модулям визначати, у яких файлах визначені їхні гачки (за допомогою гачки_інформації ). Наприклад, system_hook_info () визначає .tokens.inc файли як файли , де hook_token_info(), hook_token_info_alter(), hook_tokens(), і hook_tokens_alter()реалізації можуть бути знайдені; таким чином, ці файли автоматично завантажуються, коли потрібен один з цих гаків.
Це дозволяє додатково розділити код на файли, які завантажуються при необхідності, і код, який завжди завантажується з Drupal.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.