Esempio n. 1
0
 /**
  * @param  Node   $parent
  * @param  int    $padding
  * @param  bool   $omega
  * @param  string $prefix
  * @return string
  */
 protected function doDump(Node $parent, $padding = 0, $omega = false, $prefix = '')
 {
     $retval = '';
     $xprefix = $prefix;
     if ($omega) {
         $prefix = $prefix . '└──';
     } else {
         if ($padding > 0) {
             $prefix = $prefix . '├──';
         }
     }
     $retval .= sprintf("%s%s\n", $prefix ? $prefix . ' ' : '', (string) $parent);
     $prefix = $xprefix;
     // reset
     $children = $parent->getNodes();
     $count = count($children);
     if ($padding > 0) {
         if ($omega) {
             $prefix = $prefix . '    ';
         } else {
             $prefix = $prefix . '│   ';
         }
     }
     foreach ($children as $n => $node) {
         $omega = $count - 1 === $n;
         $retval .= $this->doDump($node, $padding + 1, $omega, $prefix);
     }
     return $retval;
 }