I was wondering when you need to use module_load_include()
or require_once
to include files which are located within your module.
The key thing that the Drupal module_load_include()
function does over and above the standard PHP require_once
is that it references the module's path when locating the file, using drupal_get_path()
.
If you were to use require_once
, you would have to do this bit yourself.
The other thing it does is check that the file exists prior to trying to include it, which is handy for avoiding fatal crashes, but rather pointless if you're going to get one anyway when you try to call the functions you tried to include. This is handy though for allowing you to produce more meaningful errors.
At the end of the day, module_load_include()
is really just a little utility function provided by Drupal to make things slightly easier for themselves. If you know where the file is located, and you know it exists there, there's very little need to use the Drupal function; you may just as well use require_once
.
require_once
would suffice. module_load_include()
would typically be better used when including a module file from outside of that module (ie as needs to be done by the code in the Drupal core) You're quite right though; both have their place. –
Solferino module_load_include requires Drupal to be loaded fully (Fully Bootstrapped).
syntax: module_load_include($type, $module, $name = NULL);
Eg: module_load_include('inc','module_name','file_name');
if u want to use this function in a global context then use require_once
require_once doesn't need it.
Eg: require_once DRUPAL_ROOT . '/path/file' .
© 2022 - 2024 — McMap. All rights reserved.
require_once
. In fact, a similar question was asked in the comments on that page, and the answer was "it's more Drupal-ish to use it", which isn't really a very helpful answer when you're trying to work out what is best practice in any given situation. – Solferino