|
| 1 | +############## |
| 2 | +# Сериалайзер |
| 3 | +############## |
| 4 | + |
| 5 | +services: |
| 6 | + # конфигурация по умолчанию в *этом* файле |
| 7 | + _defaults: |
| 8 | + autowire: true |
| 9 | + autoconfigure: true |
| 10 | + public: true |
| 11 | + |
| 12 | + Symfony\Component\HttpKernel\Controller\ControllerResolver: ~ |
| 13 | + |
| 14 | + property_info: |
| 15 | + class: Symfony\Component\PropertyInfo\PropertyInfoExtractor |
| 16 | + arguments: |
| 17 | + - ['@property_info.reflection_extractor'] |
| 18 | + - ['@property_info.reflection_extractor', '@property_info.php_doc_extractor'] |
| 19 | + - ['@property_info.php_doc_extractor'] |
| 20 | + - ['@property_info.reflection_extractor'] |
| 21 | + - ['@property_info.reflection_extractor'] |
| 22 | + |
| 23 | + property_info.reflection_extractor: |
| 24 | + class: Symfony\Component\PropertyInfo\Extractor\ReflectionExtractor |
| 25 | + tags: |
| 26 | + - { name: property_info.list_extractor, priority: -1000} |
| 27 | + - { name: property_info.type_extractor, priority: -1002} |
| 28 | + - { name: property_info.access_extractor, priority: -1000} |
| 29 | + - { name: property_info.initializable_extractor, priority: -1000} |
| 30 | + |
| 31 | + property_info.php_doc_extractor: |
| 32 | + class: Symfony\Component\PropertyInfo\Extractor\PhpDocExtractor |
| 33 | + tags: |
| 34 | + - { name: property_info.description_extractor, priority: -1000} |
| 35 | + - { name: property_info.type_extractor, priority: -1002} |
| 36 | + |
| 37 | + Symfony\Component\PropertyInfo\Extractor\PhpDocExtractor: '@property_info.php_doc_extractor' |
| 38 | + |
| 39 | + Symfony\Component\PropertyInfo\PropertyReadInfoExtractorInterface: '@property_info.reflection_extractor' |
| 40 | + Symfony\Component\PropertyInfo\PropertyWriteInfoExtractorInterface: '@property_info.reflection_extractor' |
| 41 | + |
| 42 | + Symfony\Component\PropertyInfo\PropertyInfoExtractor: '@property_info' |
| 43 | + Symfony\Component\PropertyInfo\PropertyAccessExtractorInterface: '@property_info' |
| 44 | + Symfony\Component\PropertyInfo\PropertyDescriptionExtractorInterface: '@property_info' |
| 45 | + Symfony\Component\PropertyInfo\PropertyInfoExtractorInterface: '@property_info' |
| 46 | + Symfony\Component\PropertyInfo\PropertyTypeExtractorInterface: '@property_info' |
| 47 | + Symfony\Component\PropertyInfo\PropertyListExtractorInterface: '@property_info' |
| 48 | + Symfony\Component\PropertyInfo\PropertyInitializableExtractorInterface: '@property_info' |
| 49 | + |
| 50 | + # Сериализатор. |
| 51 | + serializer: |
| 52 | + class: Symfony\Component\Serializer\Serializer |
| 53 | + arguments: |
| 54 | + - ['@serializer.normalizer.object'] |
| 55 | + - ['@json.encoder'] |
| 56 | + |
| 57 | + # json.encoder |
| 58 | + json.encoder: |
| 59 | + class: Symfony\Component\Serializer\Encoder\JsonEncoder |
| 60 | + tags: [serializer.encoder] |
| 61 | + |
| 62 | + Symfony\Component\Serializer\Encoder\JsonEncoder: '@json.encoder' |
| 63 | + |
| 64 | + json.encoder.unescaped: |
| 65 | + class: Symfony\Component\Serializer\Encoder\JsonEncode |
| 66 | + arguments: |
| 67 | + - [!php/const JSON_UNESCAPED_UNICODE] |
| 68 | + tags: [serializer.encoder] |
| 69 | + |
| 70 | + serializer.encoder.xml: |
| 71 | + class: Symfony\Component\Serializer\Encoder\XmlEncoder |
| 72 | + |
| 73 | + serializer.encoder.yaml: |
| 74 | + class: Symfony\Component\Serializer\Encoder\YamlEncoder |
| 75 | + |
| 76 | + serializer.encoder.csv: |
| 77 | + class: Symfony\Component\Serializer\Encoder\CsvEncoder |
| 78 | + |
| 79 | + # Нормалайзер объектов. |
| 80 | + object.normalizer: |
| 81 | + class: Symfony\Component\Serializer\Normalizer\ObjectNormalizer |
| 82 | + tags: [serializer.normalizer] |
| 83 | + |
| 84 | + Symfony\Component\Serializer\Normalizer\ObjectNormalizer: '@serializer.normalizer.object' |
| 85 | + |
| 86 | + serializer.normalizer.object: |
| 87 | + class: Symfony\Component\Serializer\Normalizer\ObjectNormalizer |
| 88 | + arguments: |
| 89 | + - "@serializer.mapping.class_metadata_factory" |
| 90 | + - "@serializer.name_converter.metadata_aware" |
| 91 | + - "@serializer.property_accessor" |
| 92 | + - "@property_info" |
| 93 | + - "@serializer.mapping.class_discriminator_resolver" |
| 94 | + - ~ |
| 95 | + - [] |
| 96 | + tags: |
| 97 | + # Run after all custom normalizers |
| 98 | + - { name: serializer.normalizer", priority: -1000} |
| 99 | + |
| 100 | + serializer.denormalizer.array: |
| 101 | + class: Symfony\Component\Serializer\Normalizer\ArrayDenormalizer |
| 102 | + tags: |
| 103 | + - { name: serializer.normalizer", priority: -990} |
| 104 | + |
| 105 | + serializer.normalizer.constraint_violation_list: |
| 106 | + class: Symfony\Component\Serializer\Normalizer\ConstraintViolationListNormalizer |
| 107 | + arguments: |
| 108 | + - [] |
| 109 | + - '@serializer.name_converter.metadata_aware' |
| 110 | + tags: |
| 111 | + - { name: serializer.normalizer", priority: -915} |
| 112 | + |
| 113 | + serializer.normalizer.datetimezone: |
| 114 | + class: Symfony\Component\Serializer\Normalizer\DateTimeZoneNormalizer |
| 115 | + tags: |
| 116 | + - { name: serializer.normalizer", priority: -915} |
| 117 | + |
| 118 | + serializer.normalizer.dateinterval: |
| 119 | + class: Symfony\Component\Serializer\Normalizer\DateIntervalNormalizer |
| 120 | + tags: |
| 121 | + - { name: serializer.normalizer", priority: -915} |
| 122 | + |
| 123 | + serializer.normalizer.datetime: |
| 124 | + class: Symfony\Component\Serializer\Normalizer\DateTimeNormalizer |
| 125 | + tags: |
| 126 | + - { name: serializer.normalizer", priority: -910} |
| 127 | + |
| 128 | + serializer.normalizer.json_serializable: |
| 129 | + class: Symfony\Component\Serializer\Normalizer\JsonSerializableNormalizer |
| 130 | + tags: |
| 131 | + - { name: serializer.normalizer", priority: -900} |
| 132 | + |
| 133 | + serializer.normalizer.normalizer.problem: |
| 134 | + class: Symfony\Component\Serializer\Normalizer\ProblemNormalizer |
| 135 | + tags: |
| 136 | + - { name: serializer.normalizer", priority: -890} |
| 137 | + |
| 138 | + serializer.normalizer.denormalizer.unwrapping: |
| 139 | + class: Symfony\Component\Serializer\Normalizer\UnwrappingDenormalizer |
| 140 | + tags: |
| 141 | + - { name: serializer.normalizer", priority: 1000} |
| 142 | + |
| 143 | + # Сериализатор aliases. |
| 144 | + Symfony\Component\Serializer\Serializer: '@serializer' |
| 145 | + Symfony\Component\Serializer\SerializerInterface: '@serializer' |
| 146 | + Symfony\Component\Serializer\Normalizer\NormalizerInterface: '@serializer' |
| 147 | + Symfony\Component\Serializer\Normalizer\DenormalizerInterface: '@serializer' |
| 148 | + Symfony\Component\Serializer\Encoder\EncoderInterface: '@serializer' |
| 149 | + Symfony\Component\Serializer\Encoder\DecoderInterface: '@serializer' |
| 150 | + |
| 151 | + serializer.property_accessor: '@property_accessor' |
| 152 | + |
| 153 | + property_accessor: |
| 154 | + class: Symfony\Component\PropertyAccess\PropertyAccessor |
| 155 | + |
| 156 | + serializer.mapping.class_metadata_factory: |
| 157 | + class: Symfony\Component\Serializer\Mapping\Factory\ClassMetadataFactory |
| 158 | + arguments: ['@serializer.mapping.chain_loader'] |
| 159 | + |
| 160 | + Symfony\Component\Serializer\Mapping\Factory\ClassMetadataFactoryInterface: '@serializer.mapping.class_metadata_factory' |
| 161 | + |
| 162 | + Symfony\Component\Serializer\Mapping\Loader\AnnotationLoader: ~ |
| 163 | + # Symfony\Component\Serializer\Mapping\Loader\YamlFileLoader: ~ |
| 164 | + # Symfony\Component\Serializer\Mapping\Loader\XmlFileLoader: ~ |
| 165 | + # Symfony\Component\Serializer\Mapping\Loader\FileLoader: ~ |
| 166 | + |
| 167 | + serializer.mapping.chain_loader: |
| 168 | + class: Symfony\Component\Serializer\Mapping\Loader\LoaderChain |
| 169 | + arguments: |
| 170 | + - ['@Symfony\Component\Serializer\Mapping\Loader\AnnotationLoader'] |
| 171 | + |
| 172 | + serializer.mapping.class_discriminator_resolver: |
| 173 | + class: Symfony\Component\Serializer\Mapping\ClassDiscriminatorFromClassMetadata |
| 174 | + arguments: ['@serializer.mapping.class_metadata_factory'] |
| 175 | + |
| 176 | + serializer.name_converter.camel_case_to_snake_case: |
| 177 | + class: Symfony\Component\Serializer\NameConverter\CamelCaseToSnakeCaseNameConverter |
| 178 | + |
| 179 | + serializer.name_converter.metadata_aware: |
| 180 | + class: Symfony\Component\Serializer\NameConverter\MetadataAwareNameConverter |
| 181 | + arguments: ['@serializer.mapping.class_metadata_factory'] |
| 182 | + |
| 183 | + property_info.serializer_extractor: |
| 184 | + class: Symfony\Component\PropertyInfo\Extractor\SerializerExtractor |
| 185 | + arguments: ['@serializer.mapping.class_metadata_factory'] |
| 186 | + tags: |
| 187 | + - { name: property_info.list_extractor, priority: -999 } |
0 commit comments