diff --git a/dibi/libs/DibiResult.php b/dibi/libs/DibiResult.php
index cca00a0e..91c1b165 100644
--- a/dibi/libs/DibiResult.php
+++ b/dibi/libs/DibiResult.php
@@ -636,37 +636,68 @@ class DibiResult extends DibiObject implements IDataSource
/**
- * Displays complete result set as HTML table for debug purposes.
+ * Displays complete result set as HTML or text table for debug purposes.
* @return void
*/
final public function dump()
{
$i = 0;
$this->seek(0);
- while ($row = $this->fetch()) {
- if ($i === 0) {
- echo "\n
\n\n\t\n\t\t#row | \n";
-
- foreach ($row as $col => $foo) {
- echo "\t\t" . htmlSpecialChars($col) . " | \n";
+ if (PHP_SAPI === 'cli') {
+ $hasColors = (substr(getenv('TERM'), 0, 5) === 'xterm');
+ $maxLen = 0;
+ while ($row = $this->fetch()) {
+ if ($i === 0) {
+ foreach ($row as $col => $foo) {
+ $len = mb_strlen($col);
+ if ($len > $maxLen) $maxLen = $len;
+ }
}
- echo "\t
\n\n\n";
+ if ($hasColors) {
+ echo "\033[1;37m#row: $i\033[0m\n";
+ } else {
+ echo "#row: $i\n";
+ }
+
+ foreach ($row as $col => $val) {
+ $spaces = $maxLen - mb_strlen($col) + 2;
+ echo "$col" . str_repeat(" ", $spaces) . "$val\n";
+ }
+
+ echo "\n";
+ $i++;
}
- echo "\t\n\t\t", $i, " | \n";
- foreach ($row as $col) {
- //if (is_object($col)) $col = $col->__toString();
- echo "\t\t", htmlSpecialChars($col), " | \n";
- }
- echo "\t
\n";
- $i++;
- }
+ if ($i === 0) echo "empty result set\n";
+ echo "\n";
- if ($i === 0) {
- echo 'empty result set
';
} else {
- echo "\n
\n";
+ while ($row = $this->fetch()) {
+ if ($i === 0) {
+ echo "\n\n\n\t\n\t\t#row | \n";
+
+ foreach ($row as $col => $foo) {
+ echo "\t\t" . htmlSpecialChars($col) . " | \n";
+ }
+
+ echo "\t
\n\n\n";
+ }
+
+ echo "\t\n\t\t", $i, " | \n";
+ foreach ($row as $col) {
+ //if (is_object($col)) $col = $col->__toString();
+ echo "\t\t", htmlSpecialChars($col), " | \n";
+ }
+ echo "\t
\n";
+ $i++;
+ }
+
+ if ($i === 0) {
+ echo 'empty result set
';
+ } else {
+ echo "\n
\n";
+ }
}
}