configureCheckService = $configureCheckService; } protected function configure(): void { $this ->setName('libresign:configure:check') ->setDescription('Check configure') ->addOption( name: 'sign', shortcut: 's', mode: InputOption::VALUE_NONE, description: 'Check requirements to sign document' ) ->addOption( name: 'certificate', shortcut: 'c', mode: InputOption::VALUE_NONE, description: 'Check requirements to use root certificate' ); } protected function execute(InputInterface $input, OutputInterface $output): int { $sign = $input->getOption('sign'); $certificate = $input->getOption('certificate'); $all = (!$sign && !$certificate); $result = []; if ($all) { $result = $this->configureCheckService->checkAll(); } else { if ($sign) { $result = array_merge($result, $this->configureCheckService->checkSign()); } if ($certificate) { $result = array_merge($result, $this->configureCheckService->checkCertificate()); } } if (count($result)) { $table = new Table($output); foreach ($result as $row) { $table->addRow([ new TableCell($row->getStatus(), ['style' => new TableCellStyle([ 'bg' => $row->getStatus() === 'success' ? 'green' : 'red', 'align' => 'center', ])]), $row->getResource(), $row->getMessage(), $row->getTip(), ]); } $table ->setHeaders([ 'Status', 'Resource', 'Message', 'Tip', ]) ->setStyle('symfony-style-guide') ->render(); } return 0; } }