function drupal_check_module

Same name and namespace in other branches
  1. 7.x includes/install.inc \drupal_check_module()
  2. 9 core/includes/install.inc \drupal_check_module()
  3. 8.9.x core/includes/install.inc \drupal_check_module()
  4. 10 core/includes/install.inc \drupal_check_module()

Checks a module's requirements.

Parameters

$module: Machine name of module to check.

Return value

bool TRUE or FALSE, depending on whether the requirements are met.

1 call to drupal_check_module()
ModulesListForm::buildModuleList in core/modules/system/src/Form/ModulesListForm.php
Helper function for building a list of modules to install.

File

core/includes/install.inc, line 662

Code

function drupal_check_module($module) {
    
    /** @var \Drupal\Core\Extension\ModuleExtensionList $module_list */
    $module_list = \Drupal::service('extension.list.module');
    $file = DRUPAL_ROOT . '/' . $module_list->getPath($module) . "/{$module}.install";
    if (is_file($file)) {
        require_once $file;
    }
    // Check requirements
    $requirements = \Drupal::moduleHandler()->invoke($module, 'requirements', [
        'install',
    ]);
    if (is_array($requirements) && drupal_requirements_severity($requirements) == REQUIREMENT_ERROR) {
        // Print any error messages
        foreach ($requirements as $requirement) {
            if (isset($requirement['severity']) && $requirement['severity'] == REQUIREMENT_ERROR) {
                $message = $requirement['description'];
                if (isset($requirement['value']) && $requirement['value']) {
                    $message = t('@requirements_message (Currently using @item version @version)', [
                        '@requirements_message' => $requirement['description'],
                        '@item' => $requirement['title'],
                        '@version' => $requirement['value'],
                    ]);
                }
                \Drupal::messenger()->addError($message);
            }
        }
        return FALSE;
    }
    return TRUE;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.