|
|
|
|
@ -43,6 +43,8 @@ use Symfony\Component\Console\Input\InputInterface;
|
|
|
|
|
use Symfony\Component\Console\Input\InputOption;
|
|
|
|
|
use Symfony\Component\Console\Output\OutputInterface;
|
|
|
|
|
use Symfony\Component\Console\Question\Question;
|
|
|
|
|
use Throwable;
|
|
|
|
|
use function get_class;
|
|
|
|
|
|
|
|
|
|
class Install extends Command {
|
|
|
|
|
|
|
|
|
|
@ -201,11 +203,26 @@ class Install extends Command {
|
|
|
|
|
protected function printErrors(OutputInterface $output, $errors) {
|
|
|
|
|
foreach ($errors as $error) {
|
|
|
|
|
if (is_array($error)) {
|
|
|
|
|
$output->writeln('<error>' . (string)$error['error'] . '</error>');
|
|
|
|
|
$output->writeln('<info> -> ' . (string)$error['hint'] . '</info>');
|
|
|
|
|
$output->writeln('<error>' . $error['error'] . '</error>');
|
|
|
|
|
if (isset($error['hint']) && !empty($error['hint'])) {
|
|
|
|
|
$output->writeln('<info> -> ' . $error['hint'] . '</info>');
|
|
|
|
|
}
|
|
|
|
|
if (isset($error['exception']) && $error['exception'] instanceof Throwable) {
|
|
|
|
|
$this->printThrowable($output, $error['exception']);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
$output->writeln('<error>' . (string)$error . '</error>');
|
|
|
|
|
$output->writeln('<error>' . $error . '</error>');
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private function printThrowable(OutputInterface $output, Throwable $t): void {
|
|
|
|
|
$output->write('<info>Trace: ' . $t->getTraceAsString() . '</info>');
|
|
|
|
|
$output->writeln('');
|
|
|
|
|
if ($t->getPrevious() !== null) {
|
|
|
|
|
$output->writeln('');
|
|
|
|
|
$output->writeln('<info>Previous: ' . get_class($t->getPrevious()) . ': ' . $t->getPrevious()->getMessage() . '</info>');
|
|
|
|
|
$this->printThrowable($output, $t->getPrevious());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|