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