20250626
В класс VersionInfo добавлены статические методы MinVersion и MaxVersion. Метод CompareWithRange обновлён с учётом новых методов
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user