You are here

protected function PatchInfoCommands::getTableData in PatchInfo 8.2

Returns table data for all patches in projects.

Parameters

string|null $projects: List of projects to include.

Return value

array Table data of all patches

2 calls to PatchInfoCommands::getTableData()
PatchInfoCommands::list in src/Commands/PatchInfoCommands.php
Show a report of patches applied to Drupal core and contrib projects.
PatchInfoDrupalorgCommands::list in modules/patchinfo_drupalorg/src/Commands/PatchInfoDrupalorgCommands.php
Show a report of patches applied to Drupal core and contrib projects.

File

src/Commands/PatchInfoCommands.php, line 92

Class

PatchInfoCommands
A Drush commandfile for the patchinfo:list command.

Namespace

Drupal\patchinfo\Commands

Code

protected function getTableData(string $projects = NULL) {
  $table = [];
  $limit_projects = !empty($projects) ? explode(',', $projects) : [];
  $patch_info = _patchinfo_get_info(TRUE);
  if (count($patch_info) === 0) {
    return $table;
  }

  // Get project information from update manager service.
  $projects = $this->updateManager
    ->getProjects();
  $has_limit_projects = count($limit_projects) > 0;
  foreach ($projects as $project) {
    if ($has_limit_projects && !in_array($project['name'], $limit_projects, TRUE)) {
      continue;
    }
    $patches = _patchinfo_get_patches($patch_info, $project);
    if (count($patches) > 0) {
      $label = $project['info']['name'] . ' (' . $project['name'] . ')';
      if ($project['name'] === 'drupal') {
        $label = 'Drupal (drupal)';
      }
      foreach ($patches as $delta => $patch) {
        $patchinfo_list_row = [
          'name' => $project['name'],
          'label' => $label,
          'delta' => $delta,
          'info' => chunk_split($patch['info']) . $patch['url'],
          'url' => $patch['url'],
        ];
        $table[$project['name'] . '-' . $delta] = $patchinfo_list_row;
      }
    }
  }
  return $table;
}