function install_check_class_requirements

Checks a module or profile requirements.

See \Drupal\Core\Extension\InstallRequirementsInterface for more information.

@internal

Parameters

\Drupal\Core\Extension $extension: The extension to check install requirements for.

Return value

array The requirements.

2 calls to install_check_class_requirements()
drupal_check_module in core/includes/install.inc
Checks a module's requirements.
drupal_check_profile in core/includes/install.inc
Checks an installation profile's requirements.

File

core/includes/install.inc, line 817

Code

function install_check_class_requirements(Extension $extension) : array {
    $extension_path = $extension->getPath();
    $extension_name = $extension->getName();
    $dir = \Drupal::root() . "/{$extension_path}/src/Install/Requirements";
    $requirements = [];
    if (is_dir($dir)) {
        $fileSystemIterator = new FilesystemIterator($dir);
        foreach ($fileSystemIterator as $fileInfo) {
            if ($fileInfo->isFile() && $fileInfo->getExtension() === 'php') {
                $filename = $fileInfo->getFilename();
                $requirements_path = $dir . '/' . $filename;
                require_once $requirements_path;
                $namespace = "Drupal\\{$extension_name}\\Install\\Requirements";
                $class_name = $namespace . '\\' . $fileInfo->getBasename('.php');
                if (class_exists($class_name) && class_implements($class_name, InstallRequirementsInterface::class)) {
                    $requirements = $class_name::getRequirements();
                }
            }
        }
    }
    return $requirements;
}

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