You are here

protected function DrupalKernel::moduleData in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 core/lib/Drupal/Core/DrupalKernel.php \Drupal\Core\DrupalKernel::moduleData()

Returns module data on the filesystem.

Parameters

$module: The name of the module.

Return value

\Drupal\Core\Extension\Extension|bool Returns an Extension object if the module is found, FALSE otherwise.

2 calls to DrupalKernel::moduleData()
DrupalKernel::getModuleFileNames in core/lib/Drupal/Core/DrupalKernel.php
Gets the file name for each enabled module.
DrupalKernel::getModulesParameter in core/lib/Drupal/Core/DrupalKernel.php
Returns an array of Extension class parameters for all enabled modules.

File

core/lib/Drupal/Core/DrupalKernel.php, line 709
Contains \Drupal\Core\DrupalKernel.

Class

DrupalKernel
The DrupalKernel class is the core of Drupal itself.

Namespace

Drupal\Core

Code

protected function moduleData($module) {
  if (!$this->moduleData) {

    // First, find profiles.
    $listing = new ExtensionDiscovery($this->root);
    $listing
      ->setProfileDirectories(array());
    $all_profiles = $listing
      ->scan('profile');
    $profiles = array_intersect_key($all_profiles, $this->moduleList);

    // If a module is within a profile directory but specifies another
    // profile for testing, it needs to be found in the parent profile.
    $settings = $this
      ->getConfigStorage()
      ->read('simpletest.settings');
    $parent_profile = !empty($settings['parent_profile']) ? $settings['parent_profile'] : NULL;
    if ($parent_profile && !isset($profiles[$parent_profile])) {

      // In case both profile directories contain the same extension, the
      // actual profile always has precedence.
      $profiles = array(
        $parent_profile => $all_profiles[$parent_profile],
      ) + $profiles;
    }
    $profile_directories = array_map(function ($profile) {
      return $profile
        ->getPath();
    }, $profiles);
    $listing
      ->setProfileDirectories($profile_directories);

    // Now find modules.
    $this->moduleData = $profiles + $listing
      ->scan('module');
  }
  return isset($this->moduleData[$module]) ? $this->moduleData[$module] : FALSE;
}