Esta biblioteca define a classe SteveGrunwellSemVerVersion , que visa analisar e manipular números de versão com base nas regras do versão semântica (também conhecidas como "semver").
Instale a biblioteca usando o Composer:
$ composer require stevegrunwell/semver-parserObserve que, embora essa biblioteca seja compatível com o PHP 7.4 e mais recente, os testes de unidade são executados apenas no IC contra versões de PHP apoiadas ativamente.
O construtor da classe Version pode aceitar uma versão válida e semântica com base na especificação semântica de versão 2.0.0:
use SteveGrunwell SemVer Parser ;
// Import the Composer-generated autoloader.
require_once __DIR__ . ' /vendor/autoload.php ' ;
$ version = new Version ( ' 1.2.3-rc1+local ' );
// Parse the version.
$ version -> getMajorVersion (); // 1
$ version -> getMinorVersion (); // 2
$ version -> getPatchVersion (); // 3
$ version -> getPreReleaseVersion (); // rc1
$ version -> getBuildMetadata (): // local
// Modify the version.
$ version -> setMajorVersion ( 4 );
$ version -> setMinorVersion ( 5 );
$ version -> setPatchVersion ( 6 );
$ version -> setPreReleaseVersion ( ' rc2 ' );
$ version -> setBuildMetadata ( ' github-actions.ubuntu2404 ' );
// Retrieve the updated version as a string.
$ version -> getVersion (); // "4.5.6-rc2+github-actions.ubuntu2404"
( string ) $ version ; // "4.5.6-rc2+github-actions.ubuntu2404"Além dos setters e getters descritos acima, cada um dos valores maiores, menores e patches possui métodos de incremento e decréscimo correspondentes:
// Increment values.
$ version -> incrementMajorVersion ();
$ version -> incrementMinorVersion ();
$ version -> incrementPatchVersion ();
// Decrement values.
$ version -> decrementMajorVersion ();
$ version -> decrementMinorVersion ();
$ version -> decrementPatchVersion (); Vale a pena notar que incrementMajorVersion() e incrementMinorVersion() redefinirão os números de Minor/Patch e Patch (respectivamente) de acordo com a especificação semântica de versão 2.0.0.
Esta biblioteca é lançada sob a licença do MIT. Consulte License.md para obter mais detalhes.