22
33namespace Nuxtifyts \PhpDto \Serializers \Concerns ;
44
5+ use Nuxtifyts \PhpDto \Configuration \DataConfiguration ;
56use Nuxtifyts \PhpDto \Contexts \PropertyContext ;
67use Nuxtifyts \PhpDto \Contexts \TypeContext ;
78use Nuxtifyts \PhpDto \Enums \Property \Type ;
89use Nuxtifyts \PhpDto \Exceptions \UnknownTypeException ;
9- use Nuxtifyts \PhpDto \Serializers \ArraySerializer ;
10- use Nuxtifyts \PhpDto \Serializers \BackedEnumSerializer ;
11- use Nuxtifyts \PhpDto \Serializers \DataSerializer ;
12- use Nuxtifyts \PhpDto \Serializers \DateTimeSerializer ;
13- use Nuxtifyts \PhpDto \Serializers \ScalarTypeSerializer ;
1410use Nuxtifyts \PhpDto \Serializers \Serializer ;
11+ use Nuxtifyts \PhpDto \Exceptions \DataConfigurationException ;
1512
1613trait HasSerializers
1714{
@@ -24,6 +21,7 @@ trait HasSerializers
2421 * @return list<Serializer>
2522 *
2623 * @throws UnknownTypeException
24+ * @throws DataConfigurationException
2725 */
2826 protected function getSerializersFromPropertyContext (
2927 PropertyContext $ propertyContext
@@ -35,14 +33,17 @@ protected function getSerializersFromPropertyContext(
3533 array_column ($ propertyContext ->types , 'value ' ),
3634 array_column ($ serializer ::supportedTypes (), 'value ' )
3735 )) ? new $ serializer () : null ,
38- self :: serializersList ()
36+ DataConfiguration:: getInstance ()-> serializers -> baseSerializers
3937 ))) ?: throw UnknownTypeException::unknownType (...$ propertyContext ->types );
4038 }
4139
4240 /**
4341 * @param TypeContext<Type> $typeContext
4442 *
4543 * @return list<Serializer>
44+ *
45+ * @throws UnknownTypeException
46+ * @throws DataConfigurationException
4647 */
4748 protected function getSerializersFromTypeContext (
4849 TypeContext $ typeContext ,
@@ -54,28 +55,15 @@ protected function getSerializersFromTypeContext(
5455 array_column ($ typeContext ->arrayElementTypes , 'value ' ),
5556 array_column ($ serializer ::supportedTypes (), 'value ' )
5657 )) ? new $ serializer () : null ,
57- self ::serializersList ()
58- )));
59- }
60-
61- /**
62- * @return list<class-string<Serializer>>
63- */
64- protected static function serializersList (): array
65- {
66- return [
67- ArraySerializer::class,
68- DataSerializer::class,
69- DateTimeSerializer::class,
70- BackedEnumSerializer::class,
71- ScalarTypeSerializer::class,
72- ];
58+ DataConfiguration::getInstance ()->serializers ->baseSerializers
59+ ))) ?: throw UnknownTypeException::unknownType (...$ typeContext ->arrayElementTypes );
7360 }
7461
7562 /**
7663 * @return list<Serializer>
7764 *
7865 * @throws UnknownTypeException
66+ * @throws DataConfigurationException
7967 */
8068 public function serializers (): array
8169 {
0 commit comments