Eine winzige unabhängige Bibliothek zum Parsen und Vergleich semantischer Versionen, die mit semantischer Versioning 2.0 kompatibel ist.
Laden Sie den Komponisten herunter und installieren Sie rayne/semantic-versioning .
composer require rayne/semantic-versioning
Klonen Sie das Repository
git clone https://github.com/rayne/semantic-versioning.php.git
Installieren Sie die Entwicklungsabhängigkeiten
composer install --dev
Führen Sie die Tests durch
./vendor/bin/phpunit
Die Bibliothek enthält die folgenden Klassen:
InvalidVersionException : Durch SemanticVersion auf ungültige Eingaben geworfen
SemanticComparator : Der semantische Versionsvergleich zum Vergleich von SemanticVersion -Objekten
SemanticVersion : Der semantische Versioning -Parser, der eine RuntimeException auf ungültige Versionen wirft
Die Beispiele sind Teil der Testsuite. Schauen Sie sich das tests an, um weitere Informationen zu erhalten.
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 );