Perpustakaan ini mendefinisikan kelas SteveGrunwellSemVerVersion , yang dimaksudkan untuk menguraikan dan memanipulasi nomor versi berdasarkan aturan versi semantik (alias "SEMVER").
Instal perpustakaan menggunakan komposer:
$ composer require stevegrunwell/semver-parserHarap dicatat bahwa walaupun pustaka ini harus kompatibel dengan PHP 7.4 dan yang lebih baru, tes unit hanya dijalankan dalam CI terhadap versi PHP yang didukung secara aktif.
Konstruktor kelas Version dapat menerima versi semantik yang valid berdasarkan spesifikasi 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"Selain setter dan getters yang dijelaskan di atas, masing -masing nilai utama, minor, dan patch memiliki metode kenaikan dan penurunan yang sesuai:
// Increment values.
$ version -> incrementMajorVersion ();
$ version -> incrementMinorVersion ();
$ version -> incrementPatchVersion ();
// Decrement values.
$ version -> decrementMajorVersion ();
$ version -> decrementMinorVersion ();
$ version -> decrementPatchVersion (); Perlu dicatat bahwa incrementMajorVersion() dan incrementMinorVersion() akan mengatur ulang angka minor/patch dan patch (masing -masing) sesuai dengan spesifikasi Versi 2.0.0 semantik.
Perpustakaan ini dirilis di bawah lisensi MIT. Silakan lihat lisensi.md untuk lebih jelasnya.