Beispiel #1
0
 /**
  * Flatten a value for display
  *
  * @param mixed $value
  * @return string
  */
 private static function flattenValue($value, $human_labels = array())
 {
     if (is_scalar($value)) {
         return $value;
     }
     // Merge an array or object down. Doesn't look great past 2 levels of depth.
     $is_assoc = is_array($value) && (bool) count(array_filter(array_keys($value), 'is_string'));
     if ($is_assoc || is_object($value)) {
         foreach ($value as $key => $val) {
             $value[$key] = $key . ': ' . PrettyFormatter::flattenValue($val, $human_labels);
         }
     }
     $value = join(', ', (array) $value);
     return $value;
 }
Beispiel #2
0
 /**
  * @param $data
  * @param $headers
  */
 private function formatTable($data, $headers = null)
 {
     $table = new \cli\Table();
     if ($headers) {
         $table->setHeaders($headers);
     }
     foreach ($data as $row_data) {
         $row = array();
         foreach ((array) $row_data as $key => $value) {
             $value = PrettyFormatter::flattenValue($value);
             $row[] = $value;
         }
         $table->addRow($row);
     }
     // @TODO: This does not test well. PHPUnit uses output buffering.
     ob_start();
     $table->display();
     $out = ob_get_contents();
     ob_end_clean();
     return $out;
 }