Skip to content

Commit 64f219a

Browse files
committed
Major refactor, including:
- Renamed 'SemVer\SemVer' to 'SemVer\Version' - Removed explicit get methods in favor of magic '__get()' method for accessing version properties - Implemented magic '__toString()' method allowing the class to act as a string - Updated tests and documentation
1 parent c2a83ba commit 64f219a

File tree

5 files changed

+542
-549
lines changed

5 files changed

+542
-549
lines changed

README.md

Lines changed: 34 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -33,14 +33,14 @@ Initializing
3333
```php
3434
use PHLAK\SemVer;
3535

36-
$semver = new SemVer\SemVer(); // Initilializes to 'v0.1.0'
36+
$version = new SemVer\Version(); // Initilializes to '0.1.0'
3737
```
3838

3939
Or initialize with a custom version by passing a version string on creation.
4040
Accepts any valid semantic version string with or without a preceding 'v'.
4141

4242
```php
43-
$semver = new SemVer\SemVer('v1.2.3-alpha.5-sha.8d31ff4');
43+
$version = new SemVer\Version('v1.2.3-alpha.5-sha.8d31ff4');
4444
```
4545

4646
Usage
@@ -49,54 +49,58 @@ Usage
4949
#### Retrieve the version or individual values
5050

5151
```php
52-
$semver->setVersion('v1.2.3-beta.4+007');
53-
54-
$semver->getVersion(); // v1.2.3-beta.4+007
55-
$semver->getMajor(); // 1
56-
$semver->getMinor(); // 2
57-
$semver->getPatch(); // 3
58-
$semver->getPreRelease(); // beta.4
59-
$semver->getBuild(); // 007
52+
$version = new SemVer\Version('v1.2.3-beta.4+007');
53+
54+
echo $version; // '1.2.3-beta.4+007'
55+
echo $version->major; // 1
56+
echo $version->minor; // 2
57+
echo $version->patch; // 3
58+
echo $version->preRelease; // 'beta.4'
59+
echo $version->build; // '007'
6060
```
6161

6262
#### Increment the version
6363

6464
```php
65-
$semver->incrementMajor(); // v1.2.3 -> v2.0.0
66-
$semver->incrementMinor(); // v1.2.3 -> v1.3.0
67-
$semver->incrementPatch(); // v1.2.3 -> v1.2.4
65+
$version = new SemVer\Version('v1.2.3');
66+
67+
$version->incrementMajor(); // v1.2.3 -> v2.0.0
68+
$version->incrementMinor(); // v1.2.3 -> v1.3.0
69+
$version->incrementPatch(); // v1.2.3 -> v1.2.4
6870
```
6971

7072
#### Set (override) the version or individual values
7173

7274
```php
73-
$semver->setVersion('v1.2.3'); // v1.2.3
74-
$semver->setMajor(3); // v1.2.3 -> v3.0.0
75-
$semver->setMinor(5); // v1.2.3 -> v1.5.0
76-
$semver->setPatch(7); // v1.2.3 -> 1.2.7
77-
$semver->setPreRelease('rc.2'); // v1.2.3 -> v1.2.3-rc.2
78-
$semver->setBuild('007'); // v1.2.3 -> v1.2.3+007
75+
$version = new SemVer\Version();
76+
77+
$version->setVersion('v1.2.3'); // v1.2.3
78+
$version->setMajor(3); // v1.2.3 -> v3.0.0
79+
$version->setMinor(5); // v1.2.3 -> v1.5.0
80+
$version->setPatch(7); // v1.2.3 -> 1.2.7
81+
$version->setPreRelease('rc.2'); // v1.2.3 -> v1.2.3-rc.2
82+
$version->setBuild('007'); // v1.2.3 -> v1.2.3+007
7983
```
8084

8185
#### Clear pre-release / build values
8286

8387
```php
84-
$semver->setPreRelease(null); // v1.2.3-rc.2 -> v1.2.3
85-
$semver->setBuild(null); // v1.2.3+007 -> v1.2.3
88+
$version->setPreRelease(null); // v1.2.3-rc.2 -> v1.2.3
89+
$version->setBuild(null); // v1.2.3+007 -> v1.2.3
8690
```
8791

8892
#### Compare two SemVer objects
8993

9094
```php
91-
$semver1 = new SemVer('v1.2.3');
92-
$semver2 = new SemVer('v3.2.1');
93-
94-
$semver1->gt($semver2); // false
95-
$semver1->lt($semver2); // true
96-
$semver1->eq($semver2); // false
97-
$semver1->neq($semver2); // true
98-
$semver1->gte($semver2); // false
99-
$semver1->lte($semver2); // true
95+
$version1 = new SemVer('v1.2.3');
96+
$version2 = new SemVer('v3.2.1');
97+
98+
$version1->gt($version2); // false
99+
$version1->lt($version2); // true
100+
$version1->eq($version2); // false
101+
$version1->neq($version2); // true
102+
$version1->gte($version2); // false
103+
$version1->lte($version2); // true
100104
```
101105

102106
Troubleshooting

0 commit comments

Comments
 (0)