platform/api/symfony/Component/Serializer/Normalizer/GetSetMethodNormalizer.yaml
2024-09-02 10:44:11 -07:00

98 lines
3.6 KiB
YAML

name: GetSetMethodNormalizer
class_comment: null
dependencies:
- name: LegacyIgnore
type: class
source: Symfony\Component\Serializer\Annotation\Ignore
- name: Ignore
type: class
source: Symfony\Component\Serializer\Attribute\Ignore
properties:
- name: reflectionCache
visibility: private
comment: null
methods:
- name: supports
visibility: private
parameters:
- name: class
- name: readAttributes
comment: "# * Converts between objects with getter and setter methods and arrays.\n\
# *\n# * The normalization process looks at all public methods and calls the ones\n\
# * which have a name starting with get and take no parameters. The result is\
\ a\n# * map from property names (method name stripped of the get prefix and converted\n\
# * to lower case) to property values. Property values are normalized through\
\ the\n# * serializer.\n# *\n# * The denormalization first looks at the constructor\
\ of the given class to see\n# * if any of the parameters have the same name as\
\ one of the properties. The\n# * constructor is then called with all parameters\
\ or an exception is thrown if\n# * any required parameters were not present as\
\ properties. Then the denormalizer\n# * walks through the given map of property\
\ names to property values to see if a\n# * setter method exists for any of the\
\ properties. If a setter exists it is\n# * called with the property value. No\
\ automatic denormalization of the value\n# * takes place.\n# *\n# * @author Nils\
\ Adermann <naderman@naderman.de>\n# * @author K\xE9vin Dunglas <dunglas@gmail.com>\n\
# */\n# final class GetSetMethodNormalizer extends AbstractObjectNormalizer\n\
# {\n# private static $reflectionCache = [];\n# private static array $setterAccessibleCache\
\ = [];\n# \n# public function getSupportedTypes(?string $format): array\n# {\n\
# return ['object' => true];\n# }\n# \n# public function supportsNormalization(mixed\
\ $data, ?string $format = null, array $context = []): bool\n# {\n# return parent::supportsNormalization($data,\
\ $format) && $this->supports($data::class, true);\n# }\n# \n# public function\
\ supportsDenormalization(mixed $data, string $type, ?string $format = null, array\
\ $context = []): bool\n# {\n# return parent::supportsDenormalization($data, $type,\
\ $format) && $this->supports($type, false);\n# }\n# \n# /**\n# * Checks if the\
\ given class has any getter or setter method."
- name: isGetMethod
visibility: private
parameters:
- name: method
comment: '# * Checks if a method''s name matches /^(get|is|has).+$/ and can be called
non-statically without parameters.'
- name: isSetMethod
visibility: private
parameters:
- name: method
comment: '# * Checks if a method''s name matches /^set.+$/ and can be called non-statically
with one parameter.'
- name: extractAttributes
visibility: protected
parameters:
- name: object
- name: format
default: 'null'
- name: context
default: '[]'
comment: null
- name: getAttributeValue
visibility: protected
parameters:
- name: object
- name: attribute
- name: format
default: 'null'
- name: context
default: '[]'
comment: null
- name: setAttributeValue
visibility: protected
parameters:
- name: object
- name: attribute
- name: value
- name: format
default: 'null'
- name: context
default: '[]'
comment: null
- name: isAllowedAttribute
visibility: protected
parameters:
- name: classOrObject
- name: attribute
- name: format
default: 'null'
- name: context
default: '[]'
comment: null
traits:
- Symfony\Component\Serializer\Attribute\Ignore
interfaces: []