20250626
В класс VersionInfo добавлены статические методы MinVersion и MaxVersion. Метод CompareWithRange обновлён с учётом новых методов
This commit is contained in:
parent
1290a567de
commit
e9118609b6
@ -2,7 +2,7 @@
|
||||
|
||||
## Информация о версии
|
||||
|
||||
Версия класса: 1.1
|
||||
Версия класса: 1.2
|
||||
|
||||
Впервые введено в пакет с версии: 1.0.24
|
||||
Последнее обновление в версии: 1.0.27
|
||||
@ -370,4 +370,50 @@
|
||||
|
||||
В результате на экране появится:
|
||||
|
||||
false|true|false
|
||||
false|true|false
|
||||
|
||||
#### Метод `MinVersion`
|
||||
|
||||
Введено в версии `1.0.28`.
|
||||
|
||||
Этот **статический** метод **без параметров** возвращает минимальную версию (объект класса `VersionInfo`).
|
||||
|
||||
Синтаксис:
|
||||
|
||||
public static function MinVersion (): VersionInfo
|
||||
|
||||
Пример,
|
||||
|
||||
// Создаю объекты
|
||||
$version = VersionInfo::MinVersion();
|
||||
|
||||
// Вывожу
|
||||
echo $version;
|
||||
|
||||
В результате на экране появится:
|
||||
|
||||
0.0.0.0 PreAlpha 0
|
||||
|
||||
#### Метод `MaxVersion`
|
||||
|
||||
Введено в версии `1.0.28`.
|
||||
|
||||
Этот **статический** метод **без параметров** возвращает максимальную версию (объект класса `VersionInfo`).
|
||||
|
||||
Синтаксис:
|
||||
|
||||
public static function MaxVersion (): VersionInfo
|
||||
|
||||
Пример,
|
||||
|
||||
// Создаю объекты
|
||||
$version = VersionInfo::MaxVersion();
|
||||
|
||||
// В этом примере считается, что константа PHP_INT_MAX равна 9223372036854775807
|
||||
|
||||
// Вывожу
|
||||
echo $version;
|
||||
|
||||
В результате на экране появится:
|
||||
|
||||
9223372036854775807.9223372036854775807.9223372036854775807.9223372036854775807
|
@ -11,7 +11,7 @@ use goodboyalex\php_components_pack\extensions\StringExtension;
|
||||
*
|
||||
* @author Александр Бабаев
|
||||
* @package php_components_pack
|
||||
* @version 1.1
|
||||
* @version 1.2
|
||||
* @since 1.0.24
|
||||
*/
|
||||
final class VersionInfo
|
||||
@ -306,6 +306,7 @@ final class VersionInfo
|
||||
* @return int Возвращает 1, если текущая версия старше интервала, 0, если находится в интервале, -1, если текущая
|
||||
* версия младше интервала.
|
||||
*
|
||||
* @version 1.1
|
||||
* @since 1.0.27
|
||||
*/
|
||||
public function CompareWithRange (?VersionInfo $left = null, ?VersionInfo $right = null,
|
||||
@ -317,17 +318,11 @@ final class VersionInfo
|
||||
VersionCompareRangeOption::RightBorderIncluded
|
||||
]);
|
||||
|
||||
// Минимальная версия (случай, когда левая граница не указана)
|
||||
$minVersion = new VersionInfo(0, 0, 0, 0, VersionInfoStage::PreAlpha, 0);
|
||||
|
||||
// Максимальная версия (случай, когда правая граница не указана)
|
||||
$maxVersion = new VersionInfo(PHP_INT_MAX, PHP_INT_MAX, PHP_INT_MAX, PHP_INT_MAX, VersionInfoStage::Stable);
|
||||
|
||||
// Устанавливаем левую границу
|
||||
$leftBorder = $left ?? $minVersion;
|
||||
$leftBorder = $left ?? self::MinVersion();
|
||||
|
||||
// Устанавливаем правую границу
|
||||
$rightBorder = $right ?? $maxVersion;
|
||||
$rightBorder = $right ?? self::MaxVersion();
|
||||
|
||||
// Проверяем, что границы не перепутаны
|
||||
if ($leftBorder->CompareWith($rightBorder) == 0)
|
||||
@ -369,4 +364,28 @@ final class VersionInfo
|
||||
// -- в противном случае, версия старше правой границы (или равна ей при не включении границы)
|
||||
return 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Возвращает минимальную версию.
|
||||
*
|
||||
* @return VersionInfo Минимальная версия.
|
||||
*
|
||||
* @since 1.0.28
|
||||
*/
|
||||
public static function MinVersion (): VersionInfo
|
||||
{
|
||||
return new VersionInfo(0, 0, 0, 0, VersionInfoStage::PreAlpha, 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* Возвращает максимальную версию.
|
||||
*
|
||||
* @return VersionInfo Максимальная версия.
|
||||
*
|
||||
* @since 1.0.28
|
||||
*/
|
||||
public static function MaxVersion (): VersionInfo
|
||||
{
|
||||
return new VersionInfo(PHP_INT_MAX, PHP_INT_MAX, PHP_INT_MAX, PHP_INT_MAX, VersionInfoStage::Stable);
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user