コード例 #1
0
 /**
  * Fetches the version of the latest stable release.
  *
  * It will use the GitHub API (v3) and only returns refs that begin with 'tags/'.
  * Because GitHub returns the refs in alphabetical order, we need to reduce
  * the array to a single value, comparing the version numbers with
  * version_compare().
  *
  * @see http://developer.github.com/v3/git/refs/#get-all-references
  * @link https://api.github.com/repos/prolic/HumusPHPUnitModule/git/refs/tags/
  * @return string
  */
 public static function getLatest()
 {
     if (null === static::$latestVersion) {
         static::$latestVersion = 'not available';
         $url = 'https://api.github.com/repos/prolic/HumusPHPUnitModule/git/refs/tags/';
         $apiResponse = Json::decode(file_get_contents($url), Json::TYPE_ARRAY);
         // Simplify the API response into a simple array of version numbers
         $tags = array_map(function ($tag) {
             return substr($tag['ref'], 10);
             // Reliable because we're filtering on 'refs/tags/'
         }, $apiResponse);
         // Fetch the latest version number from the array
         static::$latestVersion = array_reduce($tags, function ($a, $b) {
             return version_compare($a, $b, '>') ? $a : $b;
         });
     }
     return static::$latestVersion;
 }
コード例 #2
0
    /**
     * Fetches the version of the latest stable release.
     *
     * By Default, this uses the GitHub API (v3) and only returns refs that begin with
     * 'tags/release-'. Because GitHub returns the refs in alphabetical order,
     * we need to reduce the array to a single value, comparing the version
     * numbers with version_compare().
     *
     * If $service is set to VERSION_SERVICE_ZEND this will fall back to calling the
     * classic style of version retreival.
     *
     *
     * @see http://developer.github.com/v3/git/refs/#get-all-references
     * @link https://api.github.com/repos/zendframework/zf2/git/refs/tags/release-
     * @link http://framework.zend.com/api/zf-version?v=2
     * @param string $service Version Service with which to retrieve the version
     * @return string
     */
    public static function getLatest($service = self::VERSION_SERVICE_ZEND)
    {
        if (null === static::$latestVersion) {
            static::$latestVersion = 'not available';
            if ($service == self::VERSION_SERVICE_GITHUB) {
                $url  = 'https://api.github.com/repos/zendframework/zf2/git/refs/tags/release-';

                $apiResponse = Json::decode(file_get_contents($url), Json::TYPE_ARRAY);

                // Simplify the API response into a simple array of version numbers
                $tags = array_map(function ($tag) {
                    return substr($tag['ref'], 18); // Reliable because we're filtering on 'refs/tags/release-'
                }, $apiResponse);

                // Fetch the latest version number from the array
                static::$latestVersion = array_reduce($tags, function ($a, $b) {
                    return version_compare($a, $b, '>') ? $a : $b;
                });
            } elseif ($service == self::VERSION_SERVICE_ZEND) {
                $handle = fopen('http://framework.zend.com/api/zf-version?v=2', 'r');
                if (false !== $handle) {
                    static::$latestVersion = stream_get_contents($handle);
                    fclose($handle);
                }
            }
        }

        return static::$latestVersion;
    }
コード例 #3
0
ファイル: Version.php プロジェクト: Andyyang1981/pi
 /**
  * Fetches the version of the latest stable release.
  *
  * By Default, this uses the GitHub API (v3) and only returns refs that
  * begin with 'tags/release-'. Because GitHub returns the refs in
  * alphabetical order, we need to reduce the array to a single value,
  * comparing the version numbers with version_compare().
  *
  * If $service is set to VERSION_SERVICE_PI this will fall back to
  * calling the classic style of version retrieval.
  *
  *
  * @see http://developer.github.com/v3/git/refs/#get-all-references
  * @link https://api.github.com/repos/pi-engine/pi/git/refs/tags/release-
  * @param string $service Version Service with which to retrieve version
  * @return string
  */
 public static function getLatest($service = 'PI')
 {
     if (null === static::$latestVersion) {
         static::$latestVersion = false;
         $service = strtoupper($service);
         if ($service == 'GITHUB') {
             $url = static::$githubApiRelease;
             $apiResponse = Json::decode(file_get_contents($url), Json::TYPE_ARRAY);
             // Simplify the API response into a simple array of
             // version numbers
             // Reliable because we're filtering on 'refs/tags/release-'
             $tags = array_map(function ($tag) {
                 return substr($tag['ref'], 18);
             }, $apiResponse);
             // Fetch the latest version number from the array
             static::$latestVersion = array_reduce($tags, function ($a, $b) {
                 return version_compare($a, $b, '>') ? $a : $b;
             });
         } elseif ($service == 'PI') {
             $handle = fopen(static::$piApiRelease, 'r');
             if (false !== $handle) {
                 static::$latestVersion = stream_get_contents($handle);
                 fclose($handle);
             }
         }
     }
     return static::$latestVersion;
 }