src/jira/Provider/IssueLinksProvider.php
public function build()
    {
        $issue = $this->root;
        $this->issues[$issue->getKey()] = $issue;

        $unreceivedIssues = array_diff_key($this->issues, $this->populatedIssueKeys);
        while (count($unreceivedIssues) > 0 && $this->depth < $this->maxDepth) {
            $unpopulatedIssueKeys = [];
            foreach ($unreceivedIssues as $issue) {
                /** @var Issue $issue */
                $this->populatedIssueKeys[$issue->getKey()] = 1;

                foreach ($issue->getLinks() as $issueLink) {
                    $unpopulatedIssueKey = IssueLinkHelper::getLinkedIssueKey($issueLink);
                    if ($unpopulatedIssueKey) {
                        $unpopulatedIssueKeys[$unpopulatedIssueKey] = $unpopulatedIssueKey;
                    }
                }
            }

            $notProcessedIssueKeys = [];
            foreach ($unpopulatedIssueKeys as $issueKey) {
                if (!array_key_exists($issueKey, $this->issues)) {
                    $notProcessedIssueKeys[] = $issueKey;
                }
            }

            if ($notProcessedIssueKeys) {
                $issues = $this->getIssuesFromRepositoryByKeys($notProcessedIssueKeys);
                foreach ($issues as $issue) {
                    if (!array_key_exists($issue->getKey(), $this->issues)) {
                        $this->issues[$issue->getKey()] = $issue;
                    }
                }
            }

            $unreceivedIssues = array_diff_key($this->issues, $this->populatedIssueKeys);
            $this->depth++;
        }
    }
public function build()
    {
        $issue = $this->root;
        $this->issues[$issue->getKey()] = $issue;

        $unreceivedIssues = array_diff_key($this->issues, $this->populatedIssueKeys);
        while (count($unreceivedIssues) > 0 && $this->depth < $this->maxDepth) {
            $unpopulatedIssueKeys = [];
            foreach ($unreceivedIssues as $issue) {
                /** @var Issue $issue */
                $this->populatedIssueKeys[$issue->getKey()] = 1;

                foreach ($issue->getLinks() as $issueLink) {
                    $unpopulatedIssueKey = IssueLinkHelper::getLinkedIssueKey($issueLink);
                    if ($unpopulatedIssueKey) {
                        $unpopulatedIssueKeys[$unpopulatedIssueKey] = $unpopulatedIssueKey;
                    }
                }
            }

            $notProcessedIssueKeys = [];
            foreach ($unpopulatedIssueKeys as $issueKey) {
                if (!array_key_exists($issueKey, $this->issues)) {
                    $notProcessedIssueKeys[] = $issueKey;
                }
            }

            if ($notProcessedIssueKeys) {
                $issues = $this->getIssuesFromRepositoryByKeys($notProcessedIssueKeys);
                foreach ($issues as $issue) {
                    if (!array_key_exists($issue->getKey(), $this->issues)) {
                        $this->issues[$issue->getKey()] = $issue;
                    }
                }
            }

            $unreceivedIssues = array_diff_key($this->issues, $this->populatedIssueKeys);
            $this->depth++;
        }
    }
public function build ( ) { $ issue = $ this -> root ; $ this -> issues [ $ issue -> getKey ( ) ] = $ issue ; $ unreceivedIssues = array_diff_key ( $ this -> issues , $ this -> populatedIssueKeys ) ; while ( count ( $ unreceivedIssues ) > 0 && $ this -> depth < $ this -> maxDepth ) { $ unpopulatedIssueKeys = [ ] ; foreach ( $ unreceivedIssues as $ issue ) { /** @var Issue $issue */ $ this -> populatedIssueKeys [ $ issue -> getKey ( ) ] = 1 ; foreach ( $ issue -> getLinks ( ) as $ issueLink ) { $ unpopulatedIssueKey = IssueLinkHelper :: getLinkedIssueKey ( $ issueLink ) ; if ( $ unpopulatedIssueKey ) { $ unpopulatedIssueKeys [ $ unpopulatedIssueKey ] = $ unpopulatedIssueKey ; } } } $ notProcessedIssueKeys = [ ] ; foreach ( $ unpopulatedIssueKeys as $ issueKey ) { if ( ! array_key_exists ( $ issueKey , $ this -> issues ) ) { $ notProcessedIssueKeys [ ] = $ issueKey ; } } if ( $ notProcessedIssueKeys ) { $ issues = $ this -> getIssuesFromRepositoryByKeys ( $ notProcessedIssueKeys ) ; foreach ( $ issues as $ issue ) { if ( ! array_key_exists ( $ issue -> getKey ( ) , $ this -> issues ) ) { $ this -> issues [ $ issue -> getKey ( ) ] = $ issue ; } } } $ unreceivedIssues = array_diff_key ( $ this -> issues , $ this -> populatedIssueKeys ) ; $ this -> depth ++ ; } }
Builds issue tree
Builds issue tree