コード例 #1
0
 /**
  * searches for projects.
  *
  * @param string   $name
  * @param \Closure $finder
  * @param string   $nameKey
  *
  * @return Project[]
  */
 protected function requestProjects($name, \Closure $finder, $nameKey)
 {
     $projects = [];
     if ($this->repoParser->isConcrete($name)) {
         $project = $this->getProject($name);
         $projects[$project->getName()] = $project;
     } else {
         $repos = $finder($name);
         if (true === $this->repoParser->isWildcard($name)) {
             foreach ((array) $repos as $repo) {
                 $project = $this->getProject($repo[$nameKey]);
                 $projects[$project->getName()] = $project;
             }
         } else {
             foreach ((array) $repos as $repo) {
                 if (false === $this->repoParser->matchesRegex($name, $repo[$nameKey])) {
                     continue;
                 }
                 $project = $this->getProject($repo[$nameKey]);
                 $projects[$project->getName()] = $project;
             }
         }
     }
     return $projects;
 }