Spec-Zone.ru › Symfony 4.1

ObjectNormalizer

class ObjectNormalizer extends AbstractObjectNormalizer

Преобразует объекты в массивы и обратно, используя компонент PropertyAccess.

Свойства

ObjectToPopulateTrait
SerializerAwareTrait Trait SerializerAware.

Константы

CIRCULAR_REFERENCE_LIMIT
OBJECT_TO_POPULATE
GROUPS
ATTRIBUTES
ALLOW_EXTRA_ATTRIBUTES
DEFAULT_CONSTRUCTOR_ARGUMENTS
ENABLE_MAX_DEPTH
DEPTH_KEY_PATTERN
DISABLE_TYPE_ENFORCEMENT

Свойства

protected SerializerInterface $serializer from SerializerAwareTrait
protected int $circularReferenceLimit from AbstractNormalizer
protected callable $circularReferenceHandler from AbstractNormalizer
protected ClassMetadataFactoryInterface|null $classMetadataFactory from AbstractNormalizer
protected NameConverterInterface|null $nameConverter from AbstractNormalizer
protected array $callbacks from AbstractNormalizer
protected array $ignoredAttributes from AbstractNormalizer
protected array $camelizedAttributes from AbstractNormalizer
protected ClassDiscriminatorResolverInterface|null $classDiscriminatorResolver from AbstractObjectNormalizer
protected $propertyAccessor

Методы

object|null extractObjectToPopulate(string $class, array $context, string $key = null)

Извлечь поле object_to_populate из контекста, если оно существует и является экземпляром указанного класса $class.

из ObjectToPopulateTrait
setSerializer(SerializerInterface $serializer)

Устанавливает сериализатор.

из SerializerAwareTrait
__construct(ClassMetadataFactoryInterface $classMetadataFactory = null, NameConverterInterface $nameConverter = null, PropertyAccessorInterface $propertyAccessor = null, PropertyTypeExtractorInterface $propertyTypeExtractor = null, ClassDiscriminatorResolverInterface $classDiscriminatorResolver = null)

Устанавливает используемый {@link ClassMetadataFactoryInterface}.

AbstractNormalizer setCircularReferenceLimit(int $circularReferenceLimit)

Установить предел циклических ссылок.

из AbstractNormalizer
AbstractNormalizer setCircularReferenceHandler(callable $circularReferenceHandler)

Установить обработчик циклических ссылок.

из AbstractNormalizer
AbstractNormalizer setCallbacks(array $callbacks)

Установить колбэки нормализации.

из AbstractNormalizer
AbstractNormalizer setIgnoredAttributes(array $ignoredAttributes)

Установить игнорируемые атрибуты для нормализации и денормализации.

из AbstractNormalizer
bool hasCacheableSupportsMethod()
bool isCircularReference(object $object, array $context)

Определяет, достигнут ли предел циклических ссылок.

из AbstractNormalizer
mixed handleCircularReference(object $object)

Обрабатывает циклическую ссылку.

из AbstractNormalizer
string[]|AttributeMetadataInterface[]|bool getAllowedAttributes(string|object $classOrObject, array $context, bool $attributesAsString = false)

Получает атрибуты для нормализации с использованием групп.

bool isAllowedAttribute(object|string $classOrObject, string $attribute, string|null $format = null, array $context = array())

Разрешен ли данный атрибут?

из AbstractNormalizer
array prepareForDenormalization(object|array $data)

Нормализует заданные данные в массив. Особенно полезно при денормализации.

из AbstractNormalizer
ReflectionMethod|null getConstructor(array $data, string $class, array $context, ReflectionClass $reflectionClass, array|bool $allowedAttributes)

Возвращает метод для создания объекта. Этот метод должен быть либо конструктором объекта, либо статическим.

из AbstractNormalizer
object instantiateObject(array $data, string $class, array $context, ReflectionClass $reflectionClass, array|bool $allowedAttributes, string $format = null)

Создает объект, используя параметры конструктора, если необходимо.

из AbstractObjectNormalizer
array createChildContext(array $parentContext, string $attribute) из AbstractNormalizer
bool supportsNormalization(mixed $data, string $format = null)

Проверяет, поддерживается ли данный класс для нормализации данным нормализатором.

из AbstractObjectNormalizer
array|string|int|float|bool normalize(mixed $object, string $format = null, array $context = array())

Нормализует объект в набор массивов/скаляров.

из AbstractObjectNormalizer
string[] getAttributes(object $object, string|null $format = null, array $context)

Получает и кеширует атрибуты для данного объекта, формата и контекста.

из AbstractObjectNormalizer
string[] extractAttributes(object $object, string|null $format = null, array $context = array())

Извлекает атрибуты для нормализации из класса данного объекта, формата и контекста.

mixed getAttributeValue(object $object, string $attribute, string|null $format = null, array $context = array())

Получает значение атрибута.

void setMaxDepthHandler(callable|null $handler)

Устанавливает функцию-обработчик, которая вызывается при достижении максимальной глубины.

из AbstractObjectNormalizer
bool supportsDenormalization(mixed $data, string $type, string $format = null)

Проверяет, поддерживается ли данный класс для денормализации данным нормализатором.

из AbstractObjectNormalizer
object denormalize(mixed $data, string $class, string $format = null, array $context = array())

Денормализует данные обратно в объект заданного класса.

из AbstractObjectNormalizer
setAttributeValue(object $object, string $attribute, mixed $value, string|null $format = null, array $context = array())

Устанавливает значение атрибута.

Подробности

protected object|null extractObjectToPopulate(string $class, array $context, string $key = null)

Извлечь поле object_to_populate из контекста, если оно существует и является экземпляром заданного класса $class.

Параметры

string $class Класс, которому должен принадлежать объект
array $context Контекст денормализации
string $key Ключ, по которому искать объект для заполнения. Поддерживает обратную совместимость с AbstractNormalizer.

Значение результата

object|null Объект, если проверка пройдена, иначе null

setSerializer(SerializerInterface $serializer)

Устанавливает сериализатор.

Параметры

SerializerInterface $serializer Экземпляр SerializerInterface

__construct(ClassMetadataFactoryInterface $classMetadataFactory = null, NameConverterInterface $nameConverter = null, PropertyAccessorInterface $propertyAccessor = null, PropertyTypeExtractorInterface $propertyTypeExtractor = null, ClassDiscriminatorResolverInterface $classDiscriminatorResolver = null)

Устанавливает {@link ClassMetadataFactoryInterface} для использования.

Параметры

ClassMetadataFactoryInterface $classMetadataFactory
NameConverterInterface $nameConverter
PropertyAccessorInterface $propertyAccessor
PropertyTypeExtractorInterface $propertyTypeExtractor
ClassDiscriminatorResolverInterface $classDiscriminatorResolver

AbstractNormalizer setCircularReferenceLimit(int $circularReferenceLimit)

Установить ограничение циклической ссылки.

Параметры

int $circularReferenceLimit Предел итераций для одного и того же объекта

Значение результата

AbstractNormalizer

AbstractNormalizer setCircularReferenceHandler(callable $circularReferenceHandler)

Установить обработчик циклической ссылки.

Параметры

callable $circularReferenceHandler

Значение результата

AbstractNormalizer

AbstractNormalizer setCallbacks(array $callbacks)

Установить колбэки нормализации.

Параметры

array $callbacks Помощь в нормализации результата

Значение результата

AbstractNormalizer

Исключения

InvalidArgumentException если колбэк не вызываемый

AbstractNormalizer setIgnoredAttributes(array $ignoredAttributes)

Установить игнорируемые атрибуты для нормализации и денормализации.

Параметры

array $ignoredAttributes

Значение результата

AbstractNormalizer

bool hasCacheableSupportsMethod()

Значение результата

bool

protected bool isCircularReference(object $object, array $context)

Определяет, достигнут ли предел циклической ссылки.

Параметры

object $object
array $context

Значение результата

bool

Исключения

CircularReferenceException

protected mixed handleCircularReference(object $object)

Обрабатывает циклическую ссылку.

Если установлен обработчик циклических ссылок, он будет вызван. В противном случае будет выброшено исключение {@class CircularReferenceException}.

Параметры

object $object

Значение результата

mixed

Исключения

CircularReferenceException

protected string[]|AttributeMetadataInterface[]|bool getAllowedAttributes(string|object $classOrObject, array $context, bool $attributesAsString = false)

Получает разрешенные атрибуты для нормализации с использованием групп.

Параметры

string|object $classOrObject
array $context
bool $attributesAsString Если false, возвращает массив {@link AttributeMetadataInterface}

Значение результата

string[]|AttributeMetadataInterface[]|bool

Исключения

LogicException если переменная контекста 'allow_extra_attributes' равна false и фабрика метаданных класса не предоставлена

protected bool isAllowedAttribute(object|string $classOrObject, string $attribute, string|null $format = null, array $context = array())

Разрешен ли этот атрибут?

Параметры

object|string $classOrObject
string $attribute
string|null $format
array $context

Значение результата

bool

protected array prepareForDenormalization(object|array $data)

Нормализует заданные данные в массив. Особенно полезно во время процесса денормализации.

Параметры

object|array $data

Значение результата

array

protected ReflectionMethod|null getConstructor(array $data, string $class, array $context, ReflectionClass $reflectionClass, array|bool $allowedAttributes)

Возвращает метод, используемый для создания объекта. Этот метод должен быть либо конструктором объекта, либо статическим.

Параметры

array $data
string $class
array $context
ReflectionClass $reflectionClass
array|bool $allowedAttributes

Значение результата

ReflectionMethod|null

protected объект instantiateObject(array $data, string $class, array $context, ReflectionClass $reflectionClass, array|bool $allowedAttributes, string $format = null)

Инициализирует объект с использованием параметров конструктора при необходимости.

Этот метод также позволяет денормализовать данные в существующий объект, если он присутствует в контексте с объектом object_to_populate. Этот объект удаляется из контекста перед возвращением, чтобы избежать побочных эффектов при рекурсивной нормализации графа объектов.

Параметры

array $data
string $class
array $context
ReflectionClass $reflectionClass
array|bool $allowedAttributes
string $format

Значение возврата

объект

Исключения

RuntimeException
MissingConstructorArgumentsException

protected array createChildContext(array $parentContext, string $attribute)

Параметры

array $parentContext
string $attribute

Значение возврата

array

bool supportsNormalization(mixed $data, string $format = null)

Проверяет, поддерживается ли данный класс для нормализации этим нормализатором.

Параметры

mixed $data Данные для нормализации
string $format Формат (де)сериализации

Значение возврата

bool

array|string|int|float|bool normalize(mixed $object, string $format = null, array $context = array())

Нормализует объект в набор массивов/скаляров.

Параметры

mixed $object Объект для нормализации
string $format Формат кодирования результата нормализации
array $context Параметры контекста для нормализатора

Значение возврата

array|string|int|float|bool

Исключения

InvalidArgumentException Возникает, когда переданный объект не является допустимым типом для нормализатора
CircularReferenceException Возникает, когда нормализатор обнаруживает циклическую ссылку, которую обработчик циклических ссылок не может исправить
LogicException Возникает, когда нормализатор не вызывается в ожидаемом контексте

protected string[] getAttributes(object $object, string|null $format = null, array $context)

Получает и кэширует атрибуты для данного объекта, формата и контекста.

Параметры

object $object
string|null $format
array $context

Значение возврата

string[]

protected string[] extractAttributes(object $object, string|null $format = null, array $context = array())

Извлекает атрибуты для нормализации из класса данного объекта, формата и контекста.

Параметры

object $object
string|null $format
array $context

Значение возврата

string[]

protected mixed getAttributeValue(object $object, string $attribute, string|null $format = null, array $context = array())

Получает значение атрибута.

Параметры

object $object
string $attribute
string|null $format
array $context

Значение возврата

mixed

void setMaxDepthHandler(callable|null $handler)

Устанавливает обработчик функций, который будет вызываться при достижении максимальной глубины.

Параметры

callable|null $handler

Значение возврата

void

bool supportsDenormalization(mixed $data, string $type, string $format = null)

Проверяет, поддерживается ли данный класс для денормализации этим нормализатором.

Параметры

mixed $data Данные для денормализации
string $type Класс, в который должны быть денормализованы данные
string $format Формат десериализации

Значение возврата

bool

объект denormalize(mixed $data, string $class, string $format = null, array $context = array())

Денормализует данные обратно в объект данного класса.

Параметры

mixed $data Данные для восстановления
string $class Ожидаемый класс для создания экземпляра
string $format Формат извлеченных данных
array $context Параметры, доступные денормализатору

Значение возврата

объект

Исключения

BadMethodCallException Возникает, когда нормализатор не вызывается в ожидаемом контексте
InvalidArgumentException Возникает, когда аргументы не согласованы или не поддерживаются
UnexpectedValueException Возникает, когда элемент не может быть гидратирован с помощью заданных данных
ExtraAttributesException Возникает, когда у элемента нет атрибута для получения заданных данных
LogicException Возникает, когда нормализатор не должен денормализовать
RuntimeException Возникает, если класс не может быть создан

protected setAttributeValue(object $object, string $attribute, mixed $value, string|null $format = null, array $context = array())

Устанавливает значение атрибута.

Параметры

object $object
string $attribute
mixed $value
string|null $format
array $context

© 2004–2017 Fabien Potencier
Licensed under the MIT License.
https://api.symfony.com/4.1/Symfony/Component/Serializer/Normalizer/ObjectNormalizer.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API