private function getAbstractionDetails(Event $abs)
    {
        $reflector = $abs['reflector'];
        $abs['phpDoc'] = $this->phpDoc->getParsed($reflector);
        $traversed = false;
        if ($abs['debugMethod'] === 'table' && \count($abs['hist']) < 2) {
            // this is either rows (traversable), or a row (traversable)
            $obj = $abs->getSubject();
            if ($obj instanceof \Traversable && !$abs['traverseValues']) {
                $traversed = true;
                $abs['hist'][] = $obj;
                foreach ($obj as $k => $v) {
                    $abs['traverseValues'][$k] = $this->abstracter->needsAbstraction($v)
                        ? $this->abstracter->getAbstraction($v, $abs['debugMethod'], $abs['hist'])
                        : $v;
                }
            }
        }
        if (!$traversed) {
            $this->addConstants($abs);
            while ($reflector = $reflector->getParentClass()) {
                $abs['extends'][] = $reflector->getName();
            }
            $this->addProperties($abs);
            $this->addMethods($abs);
        }
    }
private function getAbstractionDetails(Event $abs)
    {
        $reflector = $abs['reflector'];
        $abs['phpDoc'] = $this->phpDoc->getParsed($reflector);
        $traversed = false;
        if ($abs['debugMethod'] === 'table' && \count($abs['hist']) < 2) {
            // this is either rows (traversable), or a row (traversable)
            $obj = $abs->getSubject();
            if ($obj instanceof \Traversable && !$abs['traverseValues']) {
                $traversed = true;
                $abs['hist'][] = $obj;
                foreach ($obj as $k => $v) {
                    $abs['traverseValues'][$k] = $this->abstracter->needsAbstraction($v)
                        ? $this->abstracter->getAbstraction($v, $abs['debugMethod'], $abs['hist'])
                        : $v;
                }
            }
        }
        if (!$traversed) {
            $this->addConstants($abs);
            while ($reflector = $reflector->getParentClass()) {
                $abs['extends'][] = $reflector->getName();
            }
            $this->addProperties($abs);
            $this->addMethods($abs);
        }
    }
private function getAbstractionDetails ( Event $ abs ) { $ reflector = $ abs [ 'reflector' ] ; $ abs [ 'phpDoc' ] = $ this -> phpDoc -> getParsed ( $ reflector ) ; $ traversed = false ; if ( $ abs [ 'debugMethod' ] === 'table' && \ count ( $ abs [ 'hist' ] ) < 2 ) { // this is either rows (traversable), or a row (traversable) $ obj = $ abs -> getSubject ( ) ; if ( $ obj instanceof \ Traversable && ! $ abs [ 'traverseValues' ] ) { $ traversed = true ; $ abs [ 'hist' ] [ ] = $ obj ; foreach ( $ obj as $ k => $ v ) { $ abs [ 'traverseValues' ] [ $ k ] = $ this -> abstracter -> needsAbstraction ( $ v ) ? $ this -> abstracter -> getAbstraction ( $ v , $ abs [ 'debugMethod' ] , $ abs [ 'hist' ] ) : $ v ; } } } if ( ! $ traversed ) { $ this -> addConstants ( $ abs ) ; while ( $ reflector = $ reflector -> getParentClass ( ) ) { $ abs [ 'extends' ] [ ] = $ reflector -> getName ( ) ; } $ this -> addProperties ( $ abs ) ; $ this -> addMethods ( $ abs ) ; } }
Populate constants, extends, methods, phpDoc, properties, etc

@param Event $abs Abstraction event object

@return void
Populate constants extends methods phpDoc properties etc