You are here

public function ModuleHandler::loadInclude in Drupal 9

Same name and namespace in other branches
  1. 8 core/lib/Drupal/Core/Extension/ModuleHandler.php \Drupal\Core\Extension\ModuleHandler::loadInclude()
  2. 10 core/lib/Drupal/Core/Extension/ModuleHandler.php \Drupal\Core\Extension\ModuleHandler::loadInclude()

Loads a module include file.

Examples:

// Load node.admin.inc from the node module.
$this
  ->loadInclude('node', 'inc', 'node.admin');

// Load content_types.inc from the node module.
$this
  ->loadInclude('node', 'inc', 'content_types');

Parameters

string $module: The module to which the include file belongs.

string $type: The include file's type (file extension).

string $name: (optional) The base file name (without the $type extension). If omitted, $module is used; i.e., resulting in "$module.$type" by default.

Return value

string|false The name of the included file, if successful; FALSE otherwise.

Overrides ModuleHandlerInterface::loadInclude

4 calls to ModuleHandler::loadInclude()
ModuleHandler::buildImplementationInfo in core/lib/Drupal/Core/Extension/ModuleHandler.php
Builds hook implementation information for a given hook name.
ModuleHandler::implementsHook in core/lib/Drupal/Core/Extension/ModuleHandler.php
Returns whether a given module implements a given hook.
ModuleHandler::loadAllIncludes in core/lib/Drupal/Core/Extension/ModuleHandler.php
Loads an include file for each enabled module.
ModuleHandler::verifyImplementations in core/lib/Drupal/Core/Extension/ModuleHandler.php
Verifies an array of implementations loaded from the cache, by including the lazy-loaded $module.$group.inc, and checking function_exists().

File

core/lib/Drupal/Core/Extension/ModuleHandler.php, line 262

Class

ModuleHandler
Class that manages modules in a Drupal installation.

Namespace

Drupal\Core\Extension

Code

public function loadInclude($module, $type, $name = NULL) {
  if ($type == 'install') {

    // Make sure the installation API is available
    include_once $this->root . '/core/includes/install.inc';
  }
  $name = $name ?: $module;
  $key = $type . ':' . $module . ':' . $name;
  if (isset($this->includeFileKeys[$key])) {
    return $this->includeFileKeys[$key];
  }
  if (isset($this->moduleList[$module])) {
    $file = $this->root . '/' . $this->moduleList[$module]
      ->getPath() . "/{$name}.{$type}";
    if (is_file($file)) {
      require_once $file;
      $this->includeFileKeys[$key] = $file;
      return $file;
    }
    else {
      $this->includeFileKeys[$key] = FALSE;
    }
  }
  return FALSE;
}