protected function renderTableElement(Element $tableEl, $config)
{
$rows = [];
if (true === $config['header']) {
$header = [];
foreach ($tableEl->query('.//row') as $rowEl) {
foreach ($rowEl->query('.//cell') as $cellEl) {
$colName = $cellEl->getAttribute('name');
$header[$colName] = $colName;
}
}
$rows[] = $header;
}
foreach ($tableEl->query('.//row') as $rowEl) {
$row = [];
foreach ($rowEl->query('.//cell') as $cellEl) {
$colName = $cellEl->getAttribute('name');
$row[$colName] = $cellEl->nodeValue;
}
$rows[] = $row;
}
if ($config['file']) {
$pointer = fopen($config['file'], 'w');
} else {
$pointer = fopen('php://temp', 'w+');
}
foreach ($rows as $row) {
// use fputcsv to handle escaping
fputcsv($pointer, $row, $config['delimiter']);
}
rewind($pointer);
$this->output->write(stream_get_contents($pointer));
fclose($pointer);
if ($config['file']) {
$this->output->writeln('Dumped delimited file:');
$this->output->writeln($config['file']);
}
}