php_components_pack/sources/models/ObjectArraySerializeOptions.php
2025-07-13 12:23:08 +03:00

52 lines
2.3 KiB
PHP

<?php
namespace goodboyalex\php_components_pack\models;
use Closure;
use goodboyalex\php_components_pack\enums\ObjectArraySerializeMethod;
/**
* Класс сообщения состояния.
*
* @author Александр Бабаев
* @package php_components_pack
* @version 1.0
* @since 1.0
*/
final class ObjectArraySerializeOptions
{
/**
* @var ObjectArraySerializeMethod $SerializeMethod Метод сериализации/десериализации.
*/
public ObjectArraySerializeMethod $SerializeMethod;
/**
* @var Closure|null $OnClassTo Функция обратного вызова для сериализации объекта методом JsonEncodeWithToArray.
* Она передается в качестве параметра в функцию ToArray и служит для правильного преобразования типа в массив.
*/
public ?Closure $OnClassTo;
/**
* @var Closure|null $OnClassFrom Функция обратного вызова для десериализации объекта методом
* JsonEncodeWithToArray. Она передается в качестве параметра в функцию FromArray и служит для правильного
* преобразования массива в тип.
*/
public ?Closure $OnClassFrom;
/**
* Конструктор.
*
* @param ObjectArraySerializeMethod $serializeMethod Метод сериализации/десериализации.
* @param callable|null $onClassTo Функция обратного вызова для сериализации объекта методом JsonEncodeWithToArray
* (для ToArray).
* @param callable|null $onClassFrom Функция обратного вызова для десериализации объекта методом
* JsonEncodeWithToArray (для FromArray).
*/
public function __construct (ObjectArraySerializeMethod $serializeMethod = ObjectArraySerializeMethod::Serialize,
?callable $onClassTo = null, ?callable $onClassFrom = null)
{
$this->SerializeMethod = $serializeMethod;
$this->OnClassTo = $onClassTo;
$this->OnClassFrom = $onClassFrom;
}
}