Arachnid\Crawler::traverseChildren PHP Method

traverseChildren() protected method

Crawl child links
protected traverseChildren ( array $childLinks, integer $depth )
$childLinks array
$depth integer
    protected function traverseChildren($childLinks, $depth)
    {
        if ($depth === 0) {
            return;
        }
        foreach ($childLinks as $url => $info) {
            $hash = $this->getPathFromUrl($url);
            if (isset($this->links[$hash]) === false) {
                $this->links[$hash] = $info;
            } else {
                $this->links[$hash]['original_urls'] = isset($this->links[$hash]['original_urls']) ? array_merge($this->links[$hash]['original_urls'], $info['original_urls']) : $info['original_urls'];
                $this->links[$hash]['links_text'] = isset($this->links[$hash]['links_text']) ? array_merge($this->links[$hash]['links_text'], $info['links_text']) : $info['links_text'];
                if (isset($this->links[$hash]['visited']) === true && $this->links[$hash]['visited'] === true) {
                    $oldFrequency = isset($info['frequency']) ? $info['frequency'] : 0;
                    $this->links[$hash]['frequency'] = isset($this->links[$hash]['frequency']) ? $this->links[$hash]['frequency'] + $oldFrequency : 1;
                }
            }
            if (isset($this->links[$hash]['visited']) === false) {
                $this->links[$hash]['visited'] = false;
            }
            if (empty($url) === false && $this->links[$hash]['visited'] === false && isset($this->links[$hash]['dont_visit']) === false) {
                $this->traverseSingle($this->normalizeLink($childLinks[$url]['absolute_url']), $depth);
            }
        }
    }