You are here

public function ExtensionsDev::calculateScore in Site Audit 8.3

.

Overrides SiteAuditCheckBase::calculateScore

File

src/Plugin/SiteAuditCheck/ExtensionsDev.php, line 85

Class

ExtensionsDev
Provides the ExtensionsDev Check.

Namespace

Drupal\site_audit\Plugin\SiteAuditCheck

Code

public function calculateScore() {
  if (!isset($this->registry->extensions) || empty($this->registry->extensions)) {
    $this->registry->extensions = \Drupal::service('extension.list.module')
      ->getList();
    uasort($this->registry->extensions, 'system_sort_modules_by_info_name');
  }
  $this->registry->extensions_dev = [];
  $extension_info = $this->registry->extensions;

  // uasort($extension_info, '_drush_pm_sort_extensions');.
  $dev_extensions = $this
    ->getExtensions();
  foreach ($extension_info as $key => $extension) {
    $row = [];

    // Not in the list of known development modules.
    if (!array_key_exists($extension
      ->getName(), $dev_extensions)) {
      unset($extension_info[$key]);
      continue;
    }

    // Do not report modules that are dependencies of other modules, such
    // as field_ui in Drupal Commerce.
    if (isset($extension->required_by) && !empty($extension->required_by)) {
      unset($extension_info[$key]);
      continue;
    }

    // Name.
    $row[] = $extension
      ->getName();

    // Reason.
    $row[] = $dev_extensions[$extension
      ->getName()];
    $this->registry->extensions_dev[$extension
      ->getName()] = $row;
  }
  if (!empty($this->registry->extensions_dev)) {
    if (site_audit_env_is_dev()) {
      return SiteAuditCheckBase::AUDIT_CHECK_SCORE_INFO;
    }
    return SiteAuditCheckBase::AUDIT_CHECK_SCORE_WARN;
  }
  return SiteAuditCheckBase::AUDIT_CHECK_SCORE_PASS;
}