protected function buildCommandsIndex(array $commands)
{
$commandsByPackagesAndControllers = [];
/** @var Command $command */
foreach ($commands as $command) {
if ($command->isInternal()) {
continue;
}
$commandIdentifier = $command->getCommandIdentifier();
$packageKey = strstr($commandIdentifier, ':', true);
$commandControllerClassName = $command->getControllerClassName();
$commandName = $command->getControllerCommandName();
$commandsByPackagesAndControllers[$packageKey][$commandControllerClassName][$commandName] = $command;
}
return $commandsByPackagesAndControllers;
}