greencape/php-versions

A utility class to provide a list of all PHP versions and their matching xDebug version.

Maintainers

👁 GreenCape

Package info

github.com/GreenCape/php-versions

pkg:composer/greencape/php-versions

Statistics

Installs: 88

Dependents: 1

Suggesters: 0

Stars: 0

Open Issues: 1

1.5.0 2021-01-18 14:49 UTC

Requires

Requires (Dev)

Suggests

None

Provides

None

Conflicts

None

Replaces

None

MIT 6a7847e4349648fd2156549039e526b1ed4aa173

  • Niels Braczek <nbraczek.woop@bsds.de>

This package is auto-updated.

Last update: 2026-06-27 23:27:34 UTC


README

👁 Code Climate
👁 Latest Stable Version
👁 standard-readme compliant

A utility class to provide a list of all PHP versions and their matching xDebug version.

GreenCape/php-versions is designed for use in automated build environments, as it provides the download information for any (stable) PHP version since 3.0.18.

Table of Contents

Install

GreenCape/php-versions requires PHP 7.4+ with remote file access, and comes with no dependencies except the Symfony console.

Either download this repository and copy src/php-versions.php to your project, or use composer (recommended):

$ composer require GreenCape/php-versions

Usage on the Command Line

General Info

Show information about a PHP version

$ php-versions [options] [--] [<php>]
Argument Description
php The PHP version to get the info for. Defaults to 'latest'
Option Description
-f, --format[=FORMAT] The output format. Supported values are 'dump' (default), 'json'

Download URLs

Get the filename or download URL for a PHP version or its signature file

$ php-versions download-url [options] [--] [<php>]
Argument Description
php The PHP version to get the info for. Defaults to 'latest'
Option Description
--asc Get the URL for the signature file instead of the PHP source
-f, --format[=FORMAT] The requested compression format, one of 'bz2', 'gz', or 'xz'
-u, --url If set, the full URL is returned. if not, just the filename

GPG Keys

Get the GPG keys for a PHP distribution file

$ php-versions gpg [<php>]
Argument Description
php The PHP version to get the info for. Defaults to 'latest'

Hashes

Get the sha256 or md5 hash for a PHP distribution file

$ php-versions hash [options] [--] [<php>]
Argument Description
php The PHP version to get the info for. Defaults to 'latest'
Option Description
-f, --format[=FORMAT] The requested compression format, one of 'bz2', 'gz', or 'xz'
-t, --type[=TYPE] The requested hash type, one of 'sha256' (default) or 'md5'

Versions

Show full version number of a PHP version.

$ php-versions version [<php>]
Argument Description
php The PHP version to get the info for. Defaults to 'latest'

Usage as PHP Class

The simplest use-case is to determine the current (latest) version of PHP:

$versions = new GreenCape\PhpVersions();

$latest = $versions->getInfo();
print_r($latest);

This will output

Array
(
 [version] => 8.0.1
 [aliases] => Array
 (
 [0] => latest
 [1] => 8
 [2] => 8.0
 )

 [announcement] => 1
 [date] => 2021-01-07
 [source] => Array
 (
 [gz] => Array
 (
 [filename] => php-8.0.1.tar.gz
 [name] => PHP 8.0.1 (tar.gz)
 [sha256] => f1fee0429aa2cce6bc5df5d7e65386e266b0aab8a5fad7882d10eb833d2f5376
 [md5] => 
 )

 [bz2] => Array
 (
 [filename] => php-8.0.1.tar.bz2
 [name] => PHP 8.0.1 (tar.bz2)
 [sha256] => c44e76af40d133de64564f9caf5daec52bbe84c1ccb4e4500a62233d614ebdee
 [md5] => 
 )

 [xz] => Array
 (
 [filename] => php-8.0.1.tar.xz
 [name] => PHP 8.0.1 (tar.xz)
 [sha256] => 208b3330af881b44a6a8c6858d569c72db78dab97810332978cc65206b0ec2dc
 [md5] => 
 )

 )

 [museum] => 
 [xdebug] => Array
 (
 [version] => 3.0.2
 [sha256] => 096d46dec061341868d3e3933b977013a592e2e88992b2c0aba7fa52f87c4e17
 )

 [gpg] => Array
 (
 [0] => Array
 (
 [pub] => 1729 F839 38DA 44E2 7BA0 F4D3 DBDB 3974 70D1 2172
 [uid] => Sara Golemon <pollita@php.net>
 )

 [1] => Array
 (
 [pub] => BFDD D286 4282 4F81 18EF 7790 9B67 A5C1 2229 118F
 [uid] => Gabriel Caruso (Release Manager) <carusogabriel@php.net>
 )

 )

)

GreenCape/php-versions provides a couple of access methods. See Examples and API sections for more information.

Examples

Get the latest release

$versions = new GreenCape\PhpVersions();

$info = $versions->getInfo();
echo $info['version']; // 8.0.1

Get the latest release of the 5.5 branch

$versions = new GreenCape\PhpVersions();

$info = $versions->getInfo('5.5');
echo $info['version']; // 5.5.38

Get the latest release of version 4

$versions = new GreenCape\PhpVersions();

$info = $versions->getInfo('4');
echo $info['version']; // 4.4.9

Get all release numbers of the 4.4 branch

$versions = new GreenCape\PhpVersions();

$info = $versions->getVersions('4.4');
print_r($info);

Output:

Array
(
 [0] => 4.4.9
 [1] => 4.4.8
 [2] => 4.4.7
 [3] => 4.4.6
 [4] => 4.4.5
 [5] => 4.4.4
 [6] => 4.4.3
 [7] => 4.4.2
 [8] => 4.4.1
 [9] => 4.4.0
)

Get the download info for PHP 5.2.9

$versions = new GreenCape\PhpVersions();

$info = $versions->getSourceInfo('5.2.9');
print_r($info);

Output:

Array
(
 [filename] => php-5.2.9.tar.bz2
 [name] => PHP 5.2.9 (tar.bz2)
 [md5] => 280d6cda7f72a4fc6de42fda21ac2db7
 [sha256] => 
)

Get the GPG key(s) for PHP 5.4

$versions = new GreenCape\PhpVersions();

$info = $versions->getGpgInfo('5.4');
print_r($info);

Output:

Array
(
 [0] => Array
 (
 [pub] => F382 5282 6ACD 957E F380 D39F 2F79 56BC 5DA0 4B5D
 [uid] => Stanislav Malyshev (PHP key) <stas@php.net>
 )
)

Get the XDebug information for PHP 5.4

$versions = new GreenCape\PhpVersions();

$info = $versions->getXdebugInfo('5.4');
print_r($info);

Output:

Array
(
 [version] => 2.4.1
 [sha1] => 52b5cede5dcb815de469d671bfdc626aec8adee3
)

API

See separate API documentation.

Contribute

PRs are welcome. If you encounter any bug or issues, please use the issue tracker.

License

The MIT license (MIT).