20250727 1.2.1
[*] В GUID.php константа GUID_EMPTY_STRING переименована в GUID_EMPTY. [*] В классе GUID метод isInvalidOrEmpty переименован в IsInvalidOrEmpty. [*] В классе ClassMapper в функцию SetParameterToClass добавлен "перевод" строки в класс GUID.
This commit is contained in:
parent
24bf2a009f
commit
d217322a35
@ -6,6 +6,7 @@ use DateTimeImmutable;
|
||||
use DateTimeInterface;
|
||||
use Exception;
|
||||
use goodboyalex\php_components_pack\attributes\GetOnly;
|
||||
use goodboyalex\php_components_pack\types\GUID;
|
||||
use ReflectionClass;
|
||||
use ReflectionException;
|
||||
use ReflectionProperty;
|
||||
@ -341,6 +342,11 @@ final class ClassMapper
|
||||
*/
|
||||
$property->setAccessible(true);
|
||||
|
||||
// Если значение string, а требуется GUID
|
||||
if (is_string($value) && $property->getType()->getName() === GUID::class)
|
||||
// - то присваиваю значение GUID
|
||||
$value = GUID::Parse($value, true);
|
||||
|
||||
// Если значение null
|
||||
if (!is_bool($value) && ($value == null || $value == "null"))
|
||||
// - то присваиваю значение по умолчанию
|
||||
|
@ -23,15 +23,15 @@ use Throwable;
|
||||
/**
|
||||
* Определение константы для пустого GUID как строки.
|
||||
*/
|
||||
if (!defined('GUID_EMPTY_STRING'))
|
||||
define('GUID_EMPTY_STRING', '00000000-0000-0000-0000-000000000000');
|
||||
if (!defined('GUID_EMPTY'))
|
||||
define('GUID_EMPTY', '00000000-0000-0000-0000-000000000000');
|
||||
|
||||
/**
|
||||
* Класс GUID предназначен для работы с уникальными идентификаторами формата UUID/GUID.
|
||||
*
|
||||
* @author Александр Бабаев
|
||||
* @package php_components_pack
|
||||
* @version 1.0
|
||||
* @version 1.0.1
|
||||
* @since 1.2
|
||||
*/
|
||||
final class GUID implements IArrayable, IDuplicated, ISerializable, IComparable, IHashable, JsonSerializable
|
||||
@ -40,7 +40,7 @@ final class GUID implements IArrayable, IDuplicated, ISerializable, IComparable,
|
||||
* @var string $Value Внутреннее свойство для хранения значения GUID.
|
||||
*/
|
||||
private string $Value {
|
||||
get => StringExtension::IsNullOrWhitespace($this->Value) ? GUID_EMPTY_STRING : $this->Value;
|
||||
get => StringExtension::IsNullOrWhitespace($this->Value) ? GUID_EMPTY : $this->Value;
|
||||
set {
|
||||
if (!self::Validate($value))
|
||||
throw new InvalidArgumentException('Неверный идентификатор (GUID) / Wrong GUID identifier.');
|
||||
@ -54,9 +54,9 @@ final class GUID implements IArrayable, IDuplicated, ISerializable, IComparable,
|
||||
*
|
||||
* @param string $value Значение GUID. По умолчанию, пустой GUID.
|
||||
*
|
||||
* @see GUID_EMPTY_STRING
|
||||
* @see GUID_EMPTY
|
||||
*/
|
||||
public function __construct (string $value = GUID_EMPTY_STRING)
|
||||
public function __construct (string $value = GUID_EMPTY)
|
||||
{
|
||||
$this->Value = $value;
|
||||
}
|
||||
@ -94,7 +94,7 @@ final class GUID implements IArrayable, IDuplicated, ISerializable, IComparable,
|
||||
}
|
||||
catch (Throwable) {
|
||||
// Если возникла ошибка при генерации GUID, возвращаем пустой GUID
|
||||
$guid = GUID_EMPTY_STRING;
|
||||
$guid = GUID_EMPTY;
|
||||
}
|
||||
|
||||
// Создание экземпляра GUID со сгенерированным значением и возврат его
|
||||
@ -126,7 +126,7 @@ final class GUID implements IArrayable, IDuplicated, ISerializable, IComparable,
|
||||
*
|
||||
* @return bool True, если GUID недействителен или равен пустому значению.
|
||||
*/
|
||||
public static function isInvalidOrEmpty (?GUID $guid): bool
|
||||
public static function IsInvalidOrEmpty (?GUID $guid): bool
|
||||
{
|
||||
return !self::Validate($guid) || $guid->IsEqualsTo(self::Empty());
|
||||
}
|
||||
|
@ -53,9 +53,9 @@ class GUIDTest extends TestCase
|
||||
{
|
||||
$this->PrepareForTest();
|
||||
|
||||
$this->assertFalse(GUID::isInvalidOrEmpty(new GUID ('5c0e5f0e-d033-44b1-a0b6-d0e2e369bdd1')));
|
||||
$this->assertTrue(GUID::isInvalidOrEmpty(new GUID ('00000000-0000-0000-0000-000000000000')));
|
||||
$this->assertTrue(GUID::isInvalidOrEmpty(null));
|
||||
$this->assertFalse(GUID::IsInvalidOrEmpty(new GUID ('5c0e5f0e-d033-44b1-a0b6-d0e2e369bdd1')));
|
||||
$this->assertTrue(GUID::IsInvalidOrEmpty(new GUID ('00000000-0000-0000-0000-000000000000')));
|
||||
$this->assertTrue(GUID::IsInvalidOrEmpty(null));
|
||||
}
|
||||
|
||||
public function testParse ()
|
||||
@ -117,7 +117,7 @@ class GUIDTest extends TestCase
|
||||
|
||||
$guid = GUID::Generate();
|
||||
|
||||
self::assertFalse(GUID::isInvalidOrEmpty($guid));
|
||||
self::assertFalse(GUID::IsInvalidOrEmpty($guid));
|
||||
}
|
||||
|
||||
public function testFromBytes ()
|
||||
|
Loading…
x
Reference in New Issue
Block a user