Puli\Repository\JsonRepository::followLinks PHP Метод

    private function followLinks(array $references, $flags = 0)
    {
        $result = array();
        foreach ($references as $key => $reference) {
            // Not a link
            if (!$this->isLinkReference($reference)) {
                $result[] = $reference;
                if ($flags & self::STOP_ON_FIRST) {
                    return $result;
                }
                continue;
            }
            $referencedPath = substr($reference, 1);
            // Get all the file system paths that this link points to
            // and append them to the result
            foreach ($this->searchReferences($referencedPath, $flags) as $referencedReferences) {
                // Follow links recursively
                $referencedReferences = $this->followLinks($referencedReferences);
                // Append all resulting target paths to the result
                foreach ($referencedReferences as $referencedReference) {
                    $result[] = $referencedReference;
                    if ($flags & self::STOP_ON_FIRST) {
                        return $result;
                    }
                }
            }
        }
        return $result;
    }