Spec-Zone.ru › Symfony 4.1

PropertyNormalizer

class PropertyNormalizer extends AbstractObjectNormalizer

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

Процесс нормализации ищет все свойства объекта (публичные и приватные). Результатом является карта, сопоставляющая имена свойств со значениями свойств. Значения свойств нормализуются через сериализатор.

Процесс денормализации сначала проверяет конструктор заданного класса, чтобы определить, имеют ли какие-либо параметры одинаковые имена с одним из свойств. Затем конструктор вызывается со всеми параметрами, или выбрасывается исключение, если какие-либо необходимые параметры не были представлены как свойства. После этого денормализатор проходит по заданной карте, сопоставляющей имена свойств со значениями свойств, чтобы определить, существует ли свойство с соответствующим именем. Если оно найдено, свойству присваивается значение.

Свойства

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 из SerializerAwareTrait
protected int $circularReferenceLimit из AbstractNormalizer
protected callable $circularReferenceHandler из AbstractNormalizer
protected ClassMetadataFactoryInterface|null $classMetadataFactory из AbstractNormalizer
protected NameConverterInterface|null $nameConverter из AbstractNormalizer
protected array $callbacks из AbstractNormalizer
protected array $ignoredAttributes из AbstractNormalizer
protected array $camelizedAttributes из AbstractNormalizer
protected ClassDiscriminatorResolverInterface|null $classDiscriminatorResolver из AbstractObjectNormalizer

Методы

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

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

from ObjectToPopulateTrait
setSerializer(SerializerInterface $serializer)

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

from SerializerAwareTrait
__construct(ClassMetadataFactoryInterface $classMetadataFactory = null, NameConverterInterface $nameConverter = null, PropertyTypeExtractorInterface $propertyTypeExtractor = null, ClassDiscriminatorResolverInterface $classDiscriminatorResolver = null)

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

from AbstractObjectNormalizer
AbstractNormalizer setCircularReferenceLimit(int $circularReferenceLimit)

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

from AbstractNormalizer
AbstractNormalizer setCircularReferenceHandler(callable $circularReferenceHandler)

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

from AbstractNormalizer
AbstractNormalizer setCallbacks(array $callbacks)

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

from AbstractNormalizer
AbstractNormalizer setIgnoredAttributes(array $ignoredAttributes)

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

from AbstractNormalizer
bool hasCacheableSupportsMethod()
bool isCircularReference(object $object, array $context)

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

from AbstractNormalizer
mixed handleCircularReference(object $object)

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

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

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

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

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

array prepareForDenormalization(object|array $data)

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

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

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

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

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

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

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

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

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

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

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

from 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)

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

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

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

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

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

from 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, PropertyTypeExtractorInterface $propertyTypeExtractor = null, ClassDiscriminatorResolverInterface $classDiscriminatorResolver = null)

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

Параметры

ClassMetadataFactoryInterface $classMetadataFactory
NameConverterInterface $nameConverter
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 object instantiateObject(array $data, string $class, array $context, ReflectionClass $reflectionClass, array|bool $allowedAttributes, string $format = null)

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

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

Параметры

массив $data
строка $class
массив $context
ReflectionClass $reflectionClass
массив|логическое $allowedAttributes
строка $format

Возвращаемое значение

объект

Исключения

RuntimeException
MissingConstructorArgumentsException

protected массив createChildContext(массив $parentContext, строка $attribute)

Параметры

массив $parentContext
строка $attribute

Возвращаемое значение

массив

логическое supportsNormalization(смешанный $data, строка $format = null)

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

Параметры

смешанный $data Данные для нормализации
строка $format Формат, из которого или в который производится (де)сериализация

Возвращаемое значение

логическое

массив|строка|целое|дробное|логическое normalize(смешанный $object, строка $format = null, массив $context = массив())

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

Параметры

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

Возвращаемое значение

массив|строка|целое|дробное|логическое

Исключения

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

protected строка[] getAttributes(объект $object, строка|null $format = null, массив $context)

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

Параметры

объект $object
строка|null $format
массив $context

Возвращаемое значение

строка[]

protected строка[] extractAttributes(объект $object, строка|null $format = null, массив $context = массив())

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

Параметры

объект $object
строка|null $format
массив $context

Возвращаемое значение

строка[]

protected смешанный getAttributeValue(объект $object, строка $attribute, строка|null $format = null, массив $context = массив())

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

Параметры

объект $object
строка $attribute
строка|null $format
массив $context

Возвращаемое значение

смешанный

void setMaxDepthHandler(вызываемый|null $handler)

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

Параметры

вызываемый|null $handler

Возвращаемое значение

void

логическое supportsDenormalization(смешанный $data, строка $type, строка $format = null)

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

Параметры

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

Возвращаемое значение

логическое

объект denormalize(смешанный $data, строка $class, строка $format = null, массив $context = массив())

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

Параметры

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

Возвращаемое значение

объект

Исключения

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

protected setAttributeValue(объект $object, строка $attribute, смешанный $value, строка|null $format = null, массив $context = массив())

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

Параметры

объект $object
строка $attribute
смешанный $value
строка|null $format
массив $context

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

Spec-Zone.ru

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