Skip to content

Commit 41ff71e

Browse files
[Console] fix CS for code related to Table vertical rendering
1 parent a39ddaa commit 41ff71e

File tree

2 files changed

+16
-10
lines changed

2 files changed

+16
-10
lines changed

src/Symfony/Component/Console/Helper/Table.php

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -311,7 +311,7 @@ public function setVertical(bool $vertical = true): static
311311
public function render()
312312
{
313313
$divider = new TableSeparator();
314-
$isCellWithColspan = static fn ($cell): bool => $cell instanceof TableCell && $cell->getColspan() >= 2;
314+
$isCellWithColspan = static fn ($cell) => $cell instanceof TableCell && $cell->getColspan() >= 2;
315315

316316
$horizontal = self::DISPLAY_ORIENTATION_HORIZONTAL === $this->displayOrientation;
317317
$vertical = self::DISPLAY_ORIENTATION_VERTICAL === $this->displayOrientation;
@@ -334,30 +334,36 @@ public function render()
334334
}
335335
}
336336
} elseif ($vertical) {
337-
$maxHeaderLength = array_reduce($this->headers[0] ?? [], static fn (int $max, string $header) => max($max, mb_strlen($header)), 0);
337+
$formatter = $this->output->getFormatter();
338+
$maxHeaderLength = array_reduce($this->headers[0] ?? [], static fn ($max, $header) => max($max, Helper::width(Helper::removeDecoration($formatter, $header))), 0);
338339

339340
foreach ($this->rows as $row) {
340341
if ($row instanceof TableSeparator) {
341342
continue;
342343
}
343344

344-
if (0 < \count($rows)) {
345+
if ($rows) {
345346
$rows[] = [$divider];
346347
}
347348

348-
$containsColspan = 0 < \count(array_filter($row, $isCellWithColspan));
349+
$containsColspan = false;
350+
foreach ($row as $cell) {
351+
if ($containsColspan = $isCellWithColspan($cell)) {
352+
break;
353+
}
354+
}
349355

350356
$headers = $this->headers[0] ?? [];
351357
$maxRows = max(\count($headers), \count($row));
352358
for ($i = 0; $i < $maxRows; ++$i) {
353359
$cell = (string) ($row[$i] ?? '');
354-
if ([] !== $headers && !$containsColspan) {
360+
if ($headers && !$containsColspan) {
355361
$rows[] = [sprintf(
356362
'<comment>%s</>: %s',
357363
str_pad($headers[$i] ?? '', $maxHeaderLength, ' ', \STR_PAD_LEFT),
358364
$cell
359365
)];
360-
} elseif (!empty($cell)) {
366+
} elseif ('' !== $cell) {
361367
$rows[] = [$cell];
362368
}
363369
}
@@ -443,7 +449,7 @@ public function render()
443449
*/
444450
private function renderRowSeparator(int $type = self::SEPARATOR_MID, string $title = null, string $titleFormat = null)
445451
{
446-
if (0 === $count = $this->numberOfColumns) {
452+
if (!$count = $this->numberOfColumns) {
447453
return;
448454
}
449455

@@ -652,7 +658,7 @@ private function calculateRowCount(): int
652658
++$numberOfRows; // Add row for header separator
653659
}
654660

655-
if (\count($this->rows) > 0) {
661+
if ($this->rows) {
656662
++$numberOfRows; // Add row for footer separator
657663
}
658664

src/Symfony/Component/Console/Tests/Helper/TableTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1938,10 +1938,10 @@ public function testVerticalRender(string $expectedOutput, array $headers, array
19381938
->setVertical()
19391939
->setStyle($style);
19401940

1941-
if (!empty($headerTitle)) {
1941+
if ('' !== $headerTitle) {
19421942
$table->setHeaderTitle($headerTitle);
19431943
}
1944-
if (!empty($footerTitle)) {
1944+
if ('' !== $footerTitle) {
19451945
$table->setFooterTitle($footerTitle);
19461946
}
19471947

0 commit comments

Comments
 (0)