. */ require_once 'phing/system/io/PhingFile.php'; require_once 'phing/tasks/ext/pdo/PDOResultFormatter.php'; /** * Plain text formatter for PDO results. * * @author Hans Lellelid * @package phing.tasks.ext.pdo * @since 2.3.0 */ class PlainPDOResultFormatter extends PDOResultFormatter { /** * Have column headers been printed? * @var boolean */ private $colsprinted = false; /** * Whether to show headers. * @var boolean */ private $showheaders = true; /** * Column delimiter. * Defaults to ',' * @var string */ private $coldelimiter = ","; /** * Row delimiter. * Defaults to PHP_EOL. * @var string */ private $rowdelimiter = PHP_EOL; /** * Set the showheaders attribute. * @param boolean $v */ public function setShowheaders($v) { $this->showheaders = StringHelper::booleanValue($v); } /** * Sets the column delimiter. * @param string $v */ public function setColdelim($v) { $this->coldelimiter = $v; } /** * Sets the row delimiter. * @param string $v */ public function setRowdelim($v) { $this->rowdelimiter = $v; } /** * Processes a specific row from PDO result set. * * @param array $row Row of PDO result set. */ public function processRow($row) { if (!$this->colsprinted && $this->showheaders) { $first = true; foreach($row as $fieldName => $ignore) { if ($first) $first = false; else $line .= ","; $line .= $fieldName; } $this->out->write($line); $this->out->write(PHP_EOL); $line = ""; $colsprinted = true; } // if show headers $first = true; foreach($row as $columnValue) { if ($columnValue != null) { $columnValue = trim($columnValue); } if ($first) { $first = false; } else { $line .= $this->coldelimiter; } $line .= $columnValue; } $this->out->write($line); $this->out->write($this->rowdelimiter); } public function getPreferredOutfile() { return new PhingFile('results.txt'); } }