Make one call to "OutputInterface::write" method per table row

This commit is contained in:
Alexander Obuhovich 2016-06-03 17:53:01 +03:00 committed by Fabien Potencier
parent 2e938491d6
commit 73b812e3a8

View File

@ -257,7 +257,7 @@ class Table
*/ */
private function renderColumnSeparator() private function renderColumnSeparator()
{ {
$this->output->write(sprintf($this->style->getBorderFormat(), $this->style->getVerticalBorderChar())); return sprintf($this->style->getBorderFormat(), $this->style->getVerticalBorderChar());
} }
/** /**
@ -274,12 +274,12 @@ class Table
return; return;
} }
$this->renderColumnSeparator(); $rowContent = $this->renderColumnSeparator();
foreach ($this->getRowColumns($row) as $column) { foreach ($this->getRowColumns($row) as $column) {
$this->renderCell($row, $column, $cellFormat); $rowContent .= $this->renderCell($row, $column, $cellFormat);
$this->renderColumnSeparator(); $rowContent .= $this->renderColumnSeparator();
} }
$this->output->writeln(''); $this->output->writeln($rowContent);
} }
/** /**
@ -306,12 +306,13 @@ class Table
} }
if ($cell instanceof TableSeparator) { if ($cell instanceof TableSeparator) {
$this->output->write(sprintf($this->style->getBorderFormat(), str_repeat($this->style->getHorizontalBorderChar(), $width))); return sprintf($this->style->getBorderFormat(), str_repeat($this->style->getHorizontalBorderChar(), $width));
} else {
$width += Helper::strlen($cell) - Helper::strlenWithoutDecoration($this->output->getFormatter(), $cell);
$content = sprintf($this->style->getCellRowContentFormat(), $cell);
$this->output->write(sprintf($cellFormat, str_pad($content, $width, $this->style->getPaddingChar(), $this->style->getPadType())));
} }
$width += Helper::strlen($cell) - Helper::strlenWithoutDecoration($this->output->getFormatter(), $cell);
$content = sprintf($this->style->getCellRowContentFormat(), $cell);
return sprintf($cellFormat, str_pad($content, $width, $this->style->getPaddingChar(), $this->style->getPadType()));
} }
/** /**