Esta biblioteca define la clase SteveGrunwellSemVerVersion , que está destinada a analizar y manipular números de versión basados en las reglas de versiones semánticas (también conocido como "Semver").
Instale la biblioteca usando el compositor:
$ composer require stevegrunwell/semver-parserTenga en cuenta que si bien esta biblioteca debe ser compatible con PHP 7.4 y más nueva, las pruebas unitarias solo se ejecutan en CI contra versiones de PHP con respaldo activo.
El constructor de la clase Version puede aceptar una versión semántica válida basada en la especificación Semantic Versioning 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"Además de los setters y getters descritos anteriormente, cada uno de los valores principales, menores y de parche tiene métodos de incremento y disminución correspondientes:
// Increment values.
$ version -> incrementMajorVersion ();
$ version -> incrementMinorVersion ();
$ version -> incrementPatchVersion ();
// Decrement values.
$ version -> decrementMajorVersion ();
$ version -> decrementMinorVersion ();
$ version -> decrementPatchVersion (); Vale la pena señalar que incrementMajorVersion() e incrementMinorVersion() restablecerán los números menores/parche y parche (respectivamente) de acuerdo con la especificación semántica de versiones 2.0.0.
Esta biblioteca se lanza bajo la licencia MIT. Consulte License.md para más detalles.