module_load_include () против require_once - PullRequest
6 голосов
/ 01 сентября 2011

Мне было интересно, когда вам нужно использовать module_load_include() или require_once для включения файлов, которые находятся в вашем модуле.

Ответы [ 2 ]

13 голосов
/ 01 сентября 2011

Ключевая вещь, которую функция Drupal module_load_include() делает сверх стандартного PHP require_once, заключается в том, что она ссылается на путь модуля при поиске файла, используя drupal_get_path().

Если бы вы использовали require_once, вам бы пришлось сделать это самостоятельно.

Другая вещь, которую он делает, это проверяет, существует ли файл перед попыткой его включения, что удобно для избежания фатальных сбоев, но довольно бессмысленно, если вы все равно получите его, когда попытаетесь вызвать те функции, которые вы пробовали включать. Это удобно, поскольку позволяет создавать более значимые ошибки.

В конце концов, module_load_include() - это всего лишь небольшая служебная функция, предоставляемая Drupal, чтобы немного упростить для себя ситуацию. Если вы знаете, где находится файл, и знаете, что он существует там, вам не нужно использовать функцию Drupal; Вы также можете использовать require_once.

1 голос
/ 02 января 2014

module_load_include требует, чтобы Drupal был полностью загружен (полностью загружен).

синтаксис: module_load_include ($ type, $ module, $ name = NULL);

Например: module_load_include('inc','module_name','file_name');

если вы хотите использовать эту функцию в глобальном контексте, тогда используйте require_once

require_once это не нужно.

Например: require_once DRUPAL_ROOT . '/path/file' .

...