20250727 1.2.1

[*] В GUID.php константа GUID_EMPTY_STRING переименована в GUID_EMPTY.

[*] В классе GUID метод isInvalidOrEmpty переименован в IsInvalidOrEmpty.

[*] В классе ClassMapper в функцию SetParameterToClass добавлен "перевод" строки в класс GUID.
This commit is contained in:
2025-07-27 14:59:19 +03:00
parent 24bf2a009f
commit d217322a35
3 changed files with 18 additions and 12 deletions

View File

@@ -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"))
// - то присваиваю значение по умолчанию

View File

@@ -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());
}