示例#1
0
 public function addFromTags($filter = null)
 {
     $tags = array_filter(explode("\n", $this->execute(array('tag'))));
     $versions = array_filter($tags, $this->filter);
     if (null !== $filter) {
         if (!$filter instanceof \Closure) {
             $regexes = array();
             foreach ((array) $filter as $f) {
                 $regexes[] = Glob::toRegex($f);
             }
             $filter = function ($version) use($regexes) {
                 foreach ($regexes as $regex) {
                     if (preg_match($regex, $version)) {
                         return true;
                     }
                 }
                 return false;
             };
         }
         $versions = array_filter($versions, $filter);
     }
     usort($versions, $this->sorter);
     foreach ($versions as $version) {
         $version = new Version($version);
         $version->setFrozen(true);
         $this->add($version);
     }
     return $this;
 }