<?php namespace App\Controller; use App\Service\SerializerContextFactory; use JMS\Serializer\SerializerInterface; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\JsonResponse; abstract class Controller extends AbstractController { protected $serializer; protected $serializerContextFactory; public function __construct(SerializerInterface $serializer, SerializerContextFactory $serializerContextFactory) { $this->serializer = $serializer; $this->serializerContextFactory = $serializerContextFactory; } protected function json($data, int $status = 200, array $headers = [], $context = null): JsonResponse { return new JsonResponse($this->serializer->serialize($data, "json", $context), $status, $headers, true); } }