semantic versioning.php
1.1.0
Une petite bibliothèque indépendante pour analyser et comparer les versions sémantiques qui est compatible avec le versioning sémantique 2.0.
Téléchargez le compositeur et installez rayne/semantic-versioning .
composer require rayne/semantic-versioning
Cloner le référentiel
git clone https://github.com/rayne/semantic-versioning.php.git
Installez les dépendances de développement
composer install --dev
Exécutez les tests
./vendor/bin/phpunit
La bibliothèque contient les classes suivantes:
InvalidVersionException : lancé par SemanticVersion sur une entrée non valide
SemanticComparator : le comparateur du versioning sémantique pour comparer les objets SemanticVersion
SemanticVersion : L'analyseur de version sémantique qui lance un RuntimeException sur les versions invalides
Les exemples font partie de la suite de tests. Jetez un œil au répertoire tests pour plus d'informations.
use Rayne SemanticVersioning SemanticVersion ;
$ version = new SemanticVersion ( ' 1.0.0-beta+exp.sha.5114f85 ' );
assert ( ' 1.0.0-beta+exp.sha.5114f85 ' === ( string ) $ version );
assert ( 1 === $ version -> getMajor ());
assert ( 0 === $ version -> getMinor ());
assert ( 0 === $ version -> getPatch ());
assert ( ' beta ' === $ version -> getPre ());
assert ( ' exp.sha.5114f85 ' === $ version -> getMeta ());
assert ( ' 1.0.0-beta+exp.sha.5114f85 ' === $ version -> getVersion ());
assert ( true === $ version -> isMajorRelease ());
assert ( false === $ version -> isMinorRelease ());
assert ( false === $ version -> isPatchRelease ());
assert ( true === $ version -> isPreRelease ()); use Rayne SemanticVersioning SemanticComparator ;
use Rayne SemanticVersioning SemanticVersion ;
$ comparator = new SemanticComparator ;
$ alpha = new SemanticVersion ( ' 1.0.0-alpha ' );
$ candidate = new SemanticVersion ( ' 1.0.0-rc.1 ' );
$ candidate_meta = new SemanticVersion ( ' 1.0.0-rc.1+ci ' );
$ release = new SemanticVersion ( ' 1.0.0 ' );
// $alpha < $candidate
assert ( $ comparator ( $ alpha , $ candidate ) < 0 );
assert ( $ comparator -> compare ( $ alpha , $ candidate ) < 0 );
// $candidate == $candidate_meta
assert ( $ comparator ( $ candidate , $ candidate_meta ) == 0 );
assert ( $ comparator -> compare ( $ candidate , $ candidate_meta ) == 0 );
// $release > $candidate
assert ( $ comparator ( $ release , $ candidate ) > 0 );
assert ( $ comparator -> compare ( $ release , $ candidate ) > 0 ); use Rayne SemanticVersioning SemanticComparator ;
use Rayne SemanticVersioning SemanticVersion ;
$ versions = [
$ candidate = new SemanticVersion ( ' 1.0.0-rc.1 ' ),
$ release = new SemanticVersion ( ' 1.0.0 ' ),
$ alpha = new SemanticVersion ( ' 1.0.0-alpha ' ),
];
// Sort by semantic precedence.
usort ( $ versions , new SemanticComparator );
assert ( $ versions [ 0 ] === $ alpha );
assert ( $ versions [ 1 ] === $ candidate );
assert ( $ versions [ 2 ] === $ release );