use JMS\Serializer\Accessor\DefaultAccessorStrategy;
15
use JMS\Serializer\DeserializationContext;
16
use JMS\Serializer\GraphNavigator;
17
use JMS\Serializer\Handler\HandlerRegistry;
18
use JMS\Serializer\JsonSerializationVisitor;
19
use JMS\Serializer\Metadata\Driver\AnnotationDriver;
20
use JMS\Serializer\Naming\CamelCaseNamingStrategy;
21
use JMS\Serializer\Naming\SerializedNameAnnotationStrategy;
22
use Metadata\MetadataFactory;
23
24
class JmsSerializeContextGenerator
25
{
26
public function generateContext(): DeserializationContext
27
{
28
$namingStrategy = new SerializedNameAnnotationStrategy(new CamelCaseNamingStrategy());
29
30
$context = DeserializationContext::create();
31
$factory = new MetadataFactory(new AnnotationDriver(new AnnotationReader(), $namingStrategy));
32
$context->initialize('json', new JsonSerializationVisitor(), new GraphNavigator\SerializationGraphNavigator($factory, new HandlerRegistry(), new DefaultAccessorStrategy()), $factory);