Spec-Zone.ru › Symfony 4.1
PropertyNormalizer class PropertyNormalizer extends AbstractObjectNormalizer
Преобразует объекты в массивы и обратно, сопоставляя свойства.
Процесс нормализации ищет все свойства объекта (публичные и приватные). Результатом является карта, сопоставляющая имена свойств со значениями свойств. Значения свойств нормализуются через сериализатор.
Процесс денормализации сначала проверяет конструктор заданного класса, чтобы определить, имеют ли какие-либо параметры одинаковые имена с одним из свойств. Затем конструктор вызывается со всеми параметрами, или выбрасывается исключение, если какие-либо необходимые параметры не были представлены как свойства. После этого денормализатор проходит по заданной карте, сопоставляющей имена свойств со значениями свойств, чтобы определить, существует ли свойство с соответствующим именем. Если оно найдено, свойству присваивается значение.
Свойства Константы CIRCULAR_REFERENCE_LIMIT OBJECT_TO_POPULATE GROUPS ATTRIBUTES ALLOW_EXTRA_ATTRIBUTES DEFAULT_CONSTRUCTOR_ARGUMENTS ENABLE_MAX_DEPTH DEPTH_KEY_PATTERN DISABLE_TYPE_ENFORCEMENT
Свойства Методы 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()) Устанавливает значение атрибута.
Подробности Извлечь поле object_to_populate из контекста, если оно существует и является экземпляром предоставленного класса $class.
Параметры string $class Класс, которому должен принадлежать объект array $context Контекст денормализации string $key Ключ для поиска объекта для заполнения. Поддерживает обратную совместимость с AbstractNormalizer.
Возвращаемое значение object|null объект, если проверка пройдена, иначе null
Устанавливает сериализатор.
Параметры Устанавливает используемый {@link ClassMetadataFactoryInterface}.
Параметры AbstractNormalizer
setCircularReferenceLimit(int $circularReferenceLimit)
Установить предел циклических ссылок.
Параметры int $circularReferenceLimit Предел итераций для одного и того же объекта
Возвращаемое значение AbstractNormalizer
setCircularReferenceHandler(callable $circularReferenceHandler)
Установить обработчик циклических ссылок.
Параметры callable $circularReferenceHandler
Возвращаемое значение Установить коллбеки для нормализации.
Параметры array $callbacks Помощь в нормализации результата
Возвращаемое значение Исключения AbstractNormalizer
setIgnoredAttributes(array $ignoredAttributes)
Установить игнорируемые атрибуты для нормализации и денормализации.
Параметры Возвращаемое значение bool
hasCacheableSupportsMethod()
Возвращаемое значение protected bool
isCircularReference(object $object, array $context)
Определяет, достигнут ли предел циклических ссылок.
Параметры object $object array $context
Возвращаемое значение Исключения protected mixed
handleCircularReference(object $object)
Обрабатывает циклическую ссылку.
Если установлен обработчик циклических ссылок, он будет вызван. В противном случае будет выброшено исключение {@class CircularReferenceException}.
Параметры Возвращаемое значение Исключения protected string[]|AttributeMetadataInterface []|bool
getAllowedAttributes(string|object $classOrObject, array $context, bool $attributesAsString = false)
Получает атрибуты для нормализации с использованием групп.
Параметры string|object $classOrObject array $context bool $attributesAsString Если false, возвращает массив {@link AttributeMetadataInterface}
Возвращаемое значение Исключения 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
Возвращаемое значение protected array
prepareForDenormalization(object|array $data)
Нормализует предоставленные данные в массив. Особенно полезно при денормализации.
Параметры Возвращаемое значение 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
Возвращаемое значение 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
Возвращаемое значение
Исключения
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
Возвращаемое значение
Извлекает атрибуты для нормализации из класса данного объекта, формата и контекста.
Параметры
объект
$object
строка|null
$format
массив
$context
Возвращаемое значение
protected смешанный
getAttributeValue(объект $object, строка $attribute, строка|null $format = null, массив $context = массив())
Получает значение атрибута.
Параметры
объект
$object
строка
$attribute
строка|null
$format
массив
$context
Возвращаемое значение
void
setMaxDepthHandler(вызываемый|null $handler)
Устанавливает функцию-обработчик, которая будет вызвана при достижении максимальной глубины.
Параметры
Возвращаемое значение
логическое
supportsDenormalization(смешанный $data, строка $type, строка $format = null)
Проверяет, поддерживается ли данный класс для денормализации этим нормализатором.
Параметры
смешанный
$data
Данные для денормализации
строка
$type
Класс, в который должны быть денормализованы данные
строка
$format
Формат, из которого происходит десериализация
Возвращаемое значение
объект
denormalize(смешанный $data, строка $class, строка $format = null, массив $context = массив())
Денормализует данные обратно в объект заданного класса.
Параметры
смешанный
$data
Данные для восстановления
строка
$class
Ожидаемый класс для создания экземпляра
строка
$format
Формат, из которого были извлечены данные
массив
$context
Параметры, доступные денормализатору
Возвращаемое значение
Исключения
protected
setAttributeValue(объект $object, строка $attribute, смешанный $value, строка|null $format = null, массив $context = массив())
Устанавливает значение атрибута.
Параметры
объект
$object
строка
$attribute
смешанный
$value
строка|null
$format
массив
$context