‪TYPO3CMS  11.5
VersionNumberUtility.php
Go to the documentation of this file.
1 <?php
2 
3 /*
4  * This file is part of the TYPO3 CMS project.
5  *
6  * It is free software; you can redistribute it and/or modify it under
7  * the terms of the GNU General Public License, either version 2
8  * of the License, or any later version.
9  *
10  * For the full copyright and license information, please read the
11  * LICENSE.txt file that was distributed with this source code.
12  *
13  * The TYPO3 project - inspiring people to share!
14  */
15 
17 
19 
24 {
31  public static function ‪convertVersionNumberToInteger($versionNumber)
32  {
33  $versionParts = explode('.', $versionNumber);
34  $version = $versionParts[0];
35  for ($i = 1; $i < 3; $i++) {
36  if (!empty($versionParts[$i])) {
37  $version .= str_pad((string)(int)$versionParts[$i], 3, '0', STR_PAD_LEFT);
38  } else {
39  $version .= '000';
40  }
41  }
42  return (int)$version;
43  }
44 
51  public static function ‪getNumericTypo3Version()
52  {
53  $t3version = static::getCurrentTypo3Version();
54  $t3version = preg_replace('/-?(dev|alpha|beta|RC).*$/', '', $t3version);
55  $parts = ‪GeneralUtility::intExplode('.', $t3version . '..');
56  $t3version = ‪MathUtility::forceIntegerInRange($parts[0], 0, 999) . '.' .
57  ‪MathUtility::forceIntegerInRange($parts[1], 0, 999) . '.' .
58  ‪MathUtility::forceIntegerInRange($parts[2], 0, 999);
59  return $t3version;
60  }
61 
68  public static function ‪getCurrentTypo3Version()
69  {
70  return (string)GeneralUtility::makeInstance(Typo3Version::class);
71  }
72 
81  public static function ‪convertVersionsStringToVersionNumbers($versionsString)
82  {
83  $versions = ‪GeneralUtility::trimExplode('-', $versionsString);
84  $versionsCount = count($versions);
85  for ($i = 0; $i < $versionsCount; $i++) {
86  $cleanedVersion = ‪GeneralUtility::trimExplode('.', $versions[$i]);
87  $cleanedVersionCount = count($cleanedVersion);
88  for ($j = 0; $j < $cleanedVersionCount; $j++) {
89  $cleanedVersion[$j] = ‪MathUtility::forceIntegerInRange((int)$cleanedVersion[$j], 0, 999);
90  }
91  $cleanedVersionString = implode('.', $cleanedVersion);
92  if (static::convertVersionNumberToInteger($cleanedVersionString) === 0) {
93  $cleanedVersionString = '';
94  }
95  $versions[$i] = $cleanedVersionString;
96  }
97  return $versions;
98  }
99 
107  public static function ‪convertVersionStringToArray($version)
108  {
109  $parts = ‪GeneralUtility::intExplode('.', $version . '..');
110  $parts[0] = ‪MathUtility::forceIntegerInRange($parts[0], 0, 999);
111  $parts[1] = ‪MathUtility::forceIntegerInRange($parts[1], 0, 999);
112  $parts[2] = ‪MathUtility::forceIntegerInRange($parts[2], 0, 999);
113  $result = [];
114  $result['version'] = $parts[0] . '.' . $parts[1] . '.' . $parts[2];
115  $result['version_int'] = (int)($parts[0] * 1000000 + $parts[1] * 1000 + $parts[2]);
116  $result['version_main'] = $parts[0];
117  $result['version_sub'] = $parts[1];
118  $result['version_dev'] = $parts[2];
119  return $result;
120  }
121 }
‪TYPO3\CMS\Core\Utility\VersionNumberUtility
Definition: VersionNumberUtility.php:24
‪TYPO3\CMS\Core\Utility\GeneralUtility\trimExplode
‪static list< string > trimExplode($delim, $string, $removeEmptyValues=false, $limit=0)
Definition: GeneralUtility.php:999
‪TYPO3\CMS\Core\Utility\VersionNumberUtility\getNumericTypo3Version
‪static string getNumericTypo3Version()
Definition: VersionNumberUtility.php:51
‪TYPO3\CMS\Core\Utility\VersionNumberUtility\convertVersionStringToArray
‪static array convertVersionStringToArray($version)
Definition: VersionNumberUtility.php:107
‪TYPO3\CMS\Core\Information\Typo3Version
Definition: Typo3Version.php:21
‪TYPO3\CMS\Core\Utility\MathUtility\forceIntegerInRange
‪static int forceIntegerInRange($theInt, $min, $max=2000000000, $defaultValue=0)
Definition: MathUtility.php:32
‪TYPO3\CMS\Core\Utility
Definition: ArrayUtility.php:16
‪TYPO3\CMS\Core\Utility\VersionNumberUtility\convertVersionNumberToInteger
‪static int convertVersionNumberToInteger($versionNumber)
Definition: VersionNumberUtility.php:31
‪TYPO3\CMS\Core\Utility\VersionNumberUtility\getCurrentTypo3Version
‪static string getCurrentTypo3Version()
Definition: VersionNumberUtility.php:68
‪TYPO3\CMS\Core\Utility\GeneralUtility\intExplode
‪static int[] intExplode($delimiter, $string, $removeEmptyValues=false, $limit=0)
Definition: GeneralUtility.php:927
‪TYPO3\CMS\Core\Utility\VersionNumberUtility\convertVersionsStringToVersionNumbers
‪static array convertVersionsStringToVersionNumbers($versionsString)
Definition: VersionNumberUtility.php:81