semantic versioning.php
1.1.0
Una pequeña biblioteca independiente para analizar y comparar versiones semánticas que es compatible con el Versión semántica 2.0.
Descargue el compositor e instale rayne/semantic-versioning .
composer require rayne/semantic-versioning
Clonar el repositorio
git clone https://github.com/rayne/semantic-versioning.php.git
Instalar las dependencias de desarrollo
composer install --dev
Ejecutar las pruebas
./vendor/bin/phpunit
La biblioteca contiene las siguientes clases:
InvalidVersionException : lanzado por SemanticVersion en entrada no válida
SemanticComparator : el comparador de versiones semánticas para comparar objetos SemanticVersion
SemanticVersion : el analizador de versiones semánticas que arroja una RuntimeException en versiones no válidas
Los ejemplos son parte de la suite de prueba. Eche un vistazo al directorio tests para obtener más información.
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 );