У меня есть сериализатор jms, а в моем классе есть аннотация. У меня есть случай, когда мне нужно применить аннотацию сериализатора jms только в некоторых случаях. Как это сделать? Сначала я думаю, что нужно переместить аннотацию из класса сущности в uml, возможно, и создать некоторый обработчик, где я могу включить эту аннотацию для этой сущности, в остальное время jms не применимы к сущности
моя сущность
/**
* @Annotation\ExclusionPolicy("all")
*/
class Application implements ContainsRecordedMessages
{
/**
* @var int
*
* @Annotation\Groups({
* "get_application"
* })
* @Annotation\Expose()
*/
private $id;
/**
* @var int
*
* @Annotation\Groups({
* "post_application"
* })
* @Annotation\SerializedName("company_id")
* @Annotation\Expose()
*/
private $companyId;
/**
* @var string
*
* @Annotation\Groups({
* "post_application"
* })
* @Annotation\SerializedName("channel_sale")
* @Annotation\Expose()
*/
private $channelSale;
и у меня есть менеджер классов для этого объекта, где я хочу включить jms и отключить аннотацию сериализатора jms
class ApplicationManager
{
public function someFunction()
{
$this->enableJmsForEntity(Application::class);
//some logic
//
$this->disableJmsForEntity(Application::class);
}
}
моя цель - этот сериализатор jms не работает в процессе сериализатора для ответа. Только в моей службе, где я создаю объект с функцией deserializer, аннотацией сериализатора jms для включения объекта. Потому что в этом старом проекте все ответы выглядят так
return $this->json($application, Response::HTTP_CREATED);
vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Controller/ControllerTrait.php:114
protected function json($data, $status = 200, $headers = array(), $context = array())
{
if ($this->container->has('serializer')) {
$json = $this->container->get('serializer')->serialize($data, 'json', array_merge(array(
'json_encode_options' => JsonResponse::DEFAULT_ENCODING_OPTIONS,
), $context));
return new JsonResponse($json, $status, $headers, true);
}
return new JsonResponse($data, $status, $headers);
}
и после добавления аннотации jms у нас возникла проблема, ответ меняется ..
Я обновил свой вопрос






Не могли бы вы пояснить, в чем именно заключается ваша цель?