php_components_pack/sources/traits/GUID/GUIDComparableTrait.php

56 lines
1.7 KiB
PHP

<?php
namespace goodboyalex\php_components_pack\traits\GUID;
use Deprecated;
/**
* Часть кода класса GUID, отвечающая за реализацию интерфейса IComparable.
*
* @author Александр Бабаев
* @package php_components_pack
* @version 1.0
* @since 1.2
*/
trait GUIDComparableTrait
{
/**
* @inheritDoc
*/
public function IsEqualsTo (mixed $other): bool
{
return $this->Value === $other->ToString();
}
/**
* @inheritDoc
*/
public function CompareTo (mixed $other): int
{
// Сравниваем строковые значения GUID
$compareResult = strcmp($this->Value, $other->ToString());
// Возвращаем результат сравнения
// - если текущий GUID меньше, чем второй
if ($compareResult < 0)
// - возвращаем -1
return -1;
// - если текущий GUID больше, чем второй
else if ($compareResult > 0)
// - возвращаем 1
return 1;
else
// - иначе если GUID равны, то возвращаем 0
return 0;
}
/**
* @inheritDoc
*/
#[Deprecated('Этот класс не имеет свойств. Данные методы не будут работать корректно. / This class has no properties. These methods will not work correctly.', '1.2')]
public function CompareByProperty (string $propertyName, mixed $other): int
{
// Этот класс не имеет свойств, поэтому возвращаем 0
return 0;
}
}