77use JMS \Serializer \EventDispatcher \EventSubscriberInterface ;
88use JMS \Serializer \Exception \RuntimeException ;
99use JMS \Serializer \Handler \SubscribingHandlerInterface ;
10+ use JMS \Serializer \Metadata \Driver \AttributeDriver \AttributeReader ;
1011use JMS \Serializer \Metadata \Driver \DocBlockDriver ;
1112use JMS \Serializer \Metadata \Driver \TypedPropertiesDriver ;
1213use Symfony \Component \Config \FileLocator ;
@@ -113,8 +114,7 @@ public function loadInternal(array $config, ContainerBuilder $container)
113114 if ($ config ['metadata ' ]['infer_types_from_doc_block ' ] && class_exists (DocBlockDriver::class)) {
114115 $ container ->getDefinition ('jms_serializer.metadata.doc_block_driver ' )
115116 ->setDecoratedService ('jms_serializer.metadata_driver ' )
116- ->setPublic (false )
117- ;
117+ ->setPublic (false );
118118 }
119119
120120 if (PHP_VERSION_ID >= 70400 && class_exists (TypedPropertiesDriver::class)) {
@@ -123,6 +123,14 @@ public function loadInternal(array $config, ContainerBuilder $container)
123123 ->setPublic (false );
124124 }
125125
126+ if (PHP_VERSION_ID >= 80000 && class_exists (AttributeReader::class)) {
127+ $ container ->register ('jms_serializer.metadata.annotation_and_attributes_reader ' , AttributeReader::class)
128+ ->setArgument (0 , new Reference ('annotation_reader ' ));
129+
130+ $ container ->findDefinition ('jms_serializer.metadata.annotation_driver ' )
131+ ->setArgument (0 , new Reference ('jms_serializer.metadata.annotation_and_attributes_reader ' ));
132+ }
133+
126134 $ container
127135 ->getDefinition ('jms_serializer.metadata_factory ' )
128136 ->replaceArgument (2 , $ config ['metadata ' ]['debug ' ])
0 commit comments