Utilitários de versão
Inphinit\Utility\Version é um utilitário para analisar strings de versão, modificar seus componentes e comparar versões.
Analisando a string de versão
use Inphinit\Utility\Version;
$version = new Version('1.0.0');
var_dump($version);
Saída:
object(Inphinit\Utility\Version)#37 (2) {
["data":"Inphinit\Utility\Version":private]=>
array(5) {
["major"]=> string(1) "1"
["minor"]=> string(1) "0"
["patch"]=> string(1) "0"
["prerelease"]=> NULL
["build"]=> NULL
}
["cache":"Inphinit\Utility\Version":private]=> NULL
}
Modificar propriedades
use Inphinit\Utility\Version;
$input = '1.0.0';
$version = new Version($input);
$version->major = '2';
$version->minor = '4';
$version->patch = '6';
$version->prerelease = ['a', 'b', 'c'];
$version->build = ['1', '2', '3'];
$output = "{$output}"; // to string
echo "Before: {$input}, after: {$output}";
Verifique se a string de versão é válida.
use Inphinit\Utility\Version;
$input = '1.0.0';
if (Version::valid($input)) {
echo 'Valid version';
} else {
echo 'Invalid version';
}
Comparar versões
O método Version::compare() retorna -1 se a versão atual for menor que a versão comparada, retorna 0 se forem equivalentes e, 1 se for maior, retorna falso. Exemplo:
use Inphinit\Utility\Version;
$beta2 = new Version('1.0.0-beta2');
$dev1 = new Version('1.0.0-dev1');
$release = new Version('1.0.0');
echo '$beta2 compare to $beta2: ', $beta2->compare($beta2), '<br>';
echo '$beta2 compare to $dev1: ', $beta2->compare($dev1), '<br>';
echo '$beta2 compare to $release: ', $beta2->compare($release), '<br>';
echo '$dev1 compare to $beta2: ', $dev1->compare($beta2), '<br>';
echo '$dev1 compare to $release: ', $dev1->compare($release), '<br>';
echo '$release compare to $beta2: ', $release->compare($beta2), '<br>';
echo '$release compare to $dev1: ', $release->compare($dev1), '<br>';
Saída:
$beta2 compare to $beta2: 0
$beta2 compare to $dev1: 1
$beta2 compare to $release: -1
$dev1 compare to $beta2: -1
$dev1 compare to $release: -1
$release compare to $beta2: 1
$release compare to $dev1: 1