Spec-Zone.ru › Symfony 4.1

GetSetMethodNormalizer

class GetSetMethodNormalizer extends AbstractObjectNormalizer

Преобразует объекты с методами getter и setter и массивы.

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

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

Свойства

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

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

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

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

Details

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

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

массив

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

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

Параметры

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

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

bool

массив|строка|целое число|число с плавающей точкой|булево значение 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

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

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

Параметры

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

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

bool

объект 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/GetSetMethodNormalizer.html

Spec-Zone.ru

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