1414use Tempest \Container \Container ;
1515use Tempest \Container \Initializer ;
1616use Tempest \Container \Singleton ;
17+ use Tempest \Database \Id ;
1718use Tempest \DateTime \DateTime ;
1819use Tempest \DateTime \DateTimeInterface ;
1920use Tempest \Mapper \Serializers \ArrayOfObjectsSerializer ;
2728use Tempest \Mapper \Serializers \SerializableSerializer ;
2829use Tempest \Mapper \Serializers \StringSerializer ;
2930use Tempest \Reflection \PropertyReflector ;
31+ use Tempest \Reflection \TypeReflector ;
3032
3133final class SerializerFactoryInitializer implements Initializer
3234{
@@ -35,19 +37,29 @@ public function initialize(Container $container): SerializerFactory
3537 {
3638 return new SerializerFactory ()
3739 ->addSerializer ('bool ' , BooleanSerializer::class)
40+ ->addSerializer ('boolean ' , BooleanSerializer::class)
3841 ->addSerializer ('float ' , FloatSerializer::class)
42+ ->addSerializer ('double ' , FloatSerializer::class)
3943 ->addSerializer ('int ' , IntegerSerializer::class)
44+ ->addSerializer ('integer ' , IntegerSerializer::class)
4045 ->addSerializer ('string ' , StringSerializer::class)
4146 ->addSerializer ('array ' , ArrayToJsonSerializer::class)
42- ->addSerializer (DateTimeInterface::class, DateTimeSerializer::fromProperty (...))
43- ->addSerializer (NativeDateTimeImmutable::class, NativeDateTimeSerializer::fromProperty (...))
44- ->addSerializer (NativeDateTimeInterface::class, NativeDateTimeSerializer::fromProperty (...))
45- ->addSerializer (NativeDateTime::class, NativeDateTimeSerializer::fromProperty (...))
46- ->addSerializer (Stringable::class, StringSerializer::class)
47+ ->addSerializer (DateTimeInterface::class, DateTimeSerializer::fromReflector (...))
48+ ->addSerializer (NativeDateTimeImmutable::class, NativeDateTimeSerializer::fromReflector (...))
49+ ->addSerializer (NativeDateTimeInterface::class, NativeDateTimeSerializer::fromReflector (...))
50+ ->addSerializer (NativeDateTime::class, NativeDateTimeSerializer::fromReflector (...))
4751 ->addSerializer (Serializable::class, SerializableSerializer::class)
4852 ->addSerializer (JsonSerializable::class, SerializableSerializer::class)
53+ ->addSerializer (Stringable::class, StringSerializer::class)
4954 ->addSerializer (BackedEnum::class, EnumSerializer::class)
50- ->addSerializer (DateTime::class, DateTimeSerializer::fromProperty (...))
51- ->addSerializer (fn (PropertyReflector $ property ) => $ property ->getIterableType () !== null , ArrayOfObjectsSerializer::class);
55+ ->addSerializer (DateTime::class, DateTimeSerializer::fromReflector (...))
56+ ->addSerializer (
57+ fn (TypeReflector $ type ) => $ type ->isIterable (),
58+ ArrayOfObjectsSerializer::class,
59+ )
60+ ->addSerializer (
61+ fn (PropertyReflector $ property ) => $ property ->getIterableType () !== null ,
62+ ArrayOfObjectsSerializer::class,
63+ );
5264 }
5365}
0 commit comments