52 lines
2.3 KiB
PHP
52 lines
2.3 KiB
PHP
<?php
|
|
|
|
namespace goodboyalex\php_components_pack\models;
|
|
|
|
use Closure;
|
|
use goodboyalex\php_components_pack\enums\ObjectArraySerializeMethod;
|
|
|
|
/**
|
|
* Модель настроек сериализации для класса ObjectArray.
|
|
*
|
|
* @author Александр Бабаев
|
|
* @package php_components_pack
|
|
* @version 1.0
|
|
* @since 1.1.1
|
|
*/
|
|
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;
|
|
}
|
|
} |