/** * @param ResultAggregator $results * @param ExerciseInterface $exercise * @param UserState $userState * @param OutputInterface $output */ public function render(ResultAggregator $results, ExerciseInterface $exercise, UserState $userState, OutputInterface $output) { $successes = []; $failures = []; foreach ($results as $result) { if ($result instanceof SuccessInterface || $result instanceof ResultAggregator && $result->isSuccessful()) { $successes[] = sprintf(' ✔ Check: %s', $result->getCheckName()); } else { $failures[] = [$result, sprintf(' ✗ Check: %s', $result->getCheckName())]; } } $longest = max(array_map('strlen', array_merge($successes, array_column($failures, 1)))) + 2; $output->writeLines($this->padArray($this->styleArray($successes, ['green', 'bg_black', 'bold']), $longest)); if ($results->isSuccessful()) { return $this->renderSuccessInformation($exercise, $userState, $output); } $this->renderErrorInformation($failures, $longest, $exercise, $output); }