Mercurial > hg > isophonics-drupal-site
comparison vendor/phar-io/version/src/VersionConstraintValue.php @ 14:1fec387a4317
Update Drupal core to 8.5.2 via Composer
author | Chris Cannam |
---|---|
date | Mon, 23 Apr 2018 09:46:53 +0100 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
13:5fb285c0d0e3 | 14:1fec387a4317 |
---|---|
1 <?php | |
2 namespace PharIo\Version; | |
3 | |
4 class VersionConstraintValue | |
5 { | |
6 /** | |
7 * @var VersionNumber | |
8 */ | |
9 private $major; | |
10 | |
11 /** | |
12 * @var VersionNumber | |
13 */ | |
14 private $minor; | |
15 | |
16 /** | |
17 * @var VersionNumber | |
18 */ | |
19 private $patch; | |
20 | |
21 /** | |
22 * @var string | |
23 */ | |
24 private $label = ''; | |
25 | |
26 /** | |
27 * @var string | |
28 */ | |
29 private $buildMetaData = ''; | |
30 | |
31 /** | |
32 * @var string | |
33 */ | |
34 private $versionString = ''; | |
35 | |
36 /** | |
37 * @param string $versionString | |
38 */ | |
39 public function __construct($versionString) { | |
40 $this->versionString = $versionString; | |
41 | |
42 $this->parseVersion($versionString); | |
43 } | |
44 | |
45 /** | |
46 * @param $versionString | |
47 */ | |
48 private function parseVersion($versionString) { | |
49 $this->extractBuildMetaData($versionString); | |
50 $this->extractLabel($versionString); | |
51 | |
52 $versionSegments = explode('.', $versionString); | |
53 $this->major = new VersionNumber($versionSegments[0]); | |
54 | |
55 $minorValue = isset($versionSegments[1]) ? $versionSegments[1] : null; | |
56 $patchValue = isset($versionSegments[2]) ? $versionSegments[2] : null; | |
57 | |
58 $this->minor = new VersionNumber($minorValue); | |
59 $this->patch = new VersionNumber($patchValue); | |
60 } | |
61 | |
62 /** | |
63 * @param string $versionString | |
64 */ | |
65 private function extractBuildMetaData(&$versionString) { | |
66 if (preg_match('/\+(.*)/', $versionString, $matches) == 1) { | |
67 $this->buildMetaData = $matches[1]; | |
68 $versionString = str_replace($matches[0], '', $versionString); | |
69 } | |
70 } | |
71 | |
72 /** | |
73 * @param string $versionString | |
74 */ | |
75 private function extractLabel(&$versionString) { | |
76 if (preg_match('/\-(.*)/', $versionString, $matches) == 1) { | |
77 $this->label = $matches[1]; | |
78 $versionString = str_replace($matches[0], '', $versionString); | |
79 } | |
80 } | |
81 | |
82 /** | |
83 * @return string | |
84 */ | |
85 public function getLabel() { | |
86 return $this->label; | |
87 } | |
88 | |
89 /** | |
90 * @return string | |
91 */ | |
92 public function getBuildMetaData() { | |
93 return $this->buildMetaData; | |
94 } | |
95 | |
96 /** | |
97 * @return string | |
98 */ | |
99 public function getVersionString() { | |
100 return $this->versionString; | |
101 } | |
102 | |
103 /** | |
104 * @return VersionNumber | |
105 */ | |
106 public function getMajor() { | |
107 return $this->major; | |
108 } | |
109 | |
110 /** | |
111 * @return VersionNumber | |
112 */ | |
113 public function getMinor() { | |
114 return $this->minor; | |
115 } | |
116 | |
117 /** | |
118 * @return VersionNumber | |
119 */ | |
120 public function getPatch() { | |
121 return $this->patch; | |
122 } | |
123 } |