Cette bibliothèque définit la classe SteveGrunwellSemVerVersion , qui est destinée à analyser et à manipuler les numéros de version basés sur les règles du versioning sémantique (aka "Semver").
Installez la bibliothèque à l'aide du compositeur:
$ composer require stevegrunwell/semver-parserVeuillez noter que même si cette bibliothèque doit être compatible avec PHP 7.4 et plus récente, les tests unitaires ne sont exécutés qu'en CI par rapport aux versions activement soutenues par PHP.
Le constructeur de la classe Version peut accepter une version sémantique valide basée sur les spécifications sémantiques du 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"En plus des setters et des getters décrits ci-dessus, chacune des valeurs majeures, mineures et des patchs a des méthodes d'incrément et de décrémentation correspondantes:
// Increment values.
$ version -> incrementMajorVersion ();
$ version -> incrementMinorVersion ();
$ version -> incrementPatchVersion ();
// Decrement values.
$ version -> decrementMajorVersion ();
$ version -> decrementMinorVersion ();
$ version -> decrementPatchVersion (); Il convient de noter incrementMajorVersion() et incrementMinorVersion() réinitialiseront les numéros mineurs / patch et patch (respectivement) en fonction de la spécification Semantic versioning 2.0.0.
Cette bibliothèque est publiée sous la licence MIT. Veuillez consulter Licence.md pour plus de détails.