Запрос проверки требует дублирования кода проверки в Symfony - PullRequest
0 голосов
/ 18 мая 2018

Допустим, у меня есть метод REST API для создания пользователя.У меня также есть пользовательский объект с настроенными ограничениями проверки.Вопрос в том, как проверить данные из запроса.Мои проблемы:

  1. Я не могу заполнить пользовательский экземпляр без предварительной проверки данных в запросе - некоторые данные могут отсутствовать, другие могут быть недействительными.Например, null передается установщику объекта пользователя с string type-hinting.
  2. Я не очень заинтересован в том, чтобы проверять данные запроса отдельно перед заполнением пользовательского экземпляра, потому что это будет дублированиеиз ограничений проверки, настроенных для объекта пользователя.Было бы проблемой управлять одинаковыми или похожими ограничениями проверки в двух местах - контроллере и конфигурации проверки сущности.

Так что в основном я хочу избежать дублирования ограничений проверки в коде иконфиг, но в то же время я вынужден продублировать его перед заполнением сущности.Как я могу преодолеть это?

1 Ответ

0 голосов
/ 18 мая 2018

Это довольно физиологично.

Я бы предложил использовать DTO, где не проверяются никакие ограничения (в основном, где вы можете принимать «все виды данных» в ваших установщиках или даже иметь открытые свойства, которыеменее громоздким) и иметь проверку на него.

Когда DTO действителен, создайте базовый объект в допустимом состоянии (Value Object?)

Конечно, вам нужно «продублировать»«некоторые ограничения, но я бы не рассматривал это как реальное дублирование, потому что, фактически, DTO и базовый объект не являются одним и тем же объектом , даже если они кажутся связанными.Если вы не согласны - и это может иметь место - просто остановитесь и подумайте о том усилении, которое вы получите, отсоединив сущность (которая должна быть всегда в действительном состоянии) от модели, где принимаются пользовательские входные данные.

...