2013-07-10 4 views
0

Очень интересная тема возникла сегодня с двух точек зрения.Проверка достоверности доктрины (проверка метода сеттера или событие)

Использование Doctrine Entities

  1. Если проверка данных будет сделано в тот момент, когда метод установки называется? То есть Внутри метода setFieldName() или
  2. Должно ли сущность быть проверена в целом для действительных данных when an event is triggered on an entity?

Есть ли нормальный или испытанный теории и/или точку зрения по этому вопросу?

ответ

0

Я не думаю, что есть нормальный стандартный способ сделать это - я думаю, это зависит от ваших потребностей. Могу рассказать вам свою точку зрения: Для меня валидация данных должна выполняться по сеттерам - то есть - как можно скорее. Таким образом, у вас не может быть сущности с недопустимым набором данных, и это спасет вас от головных болей, когда вы собираетесь продолжать.

Попробуйте подумать об этом так: предположим, у вас есть автомобиль, который работает на бензине. Вы отправляетесь на заправочную станцию, чтобы пополнить ее. У вас есть два насоса: бензин и бензин. Без проверки вы могли бы поставить там любой тип топлива, и пока вы не включите двигатель, ничего не произойдет. Но когда вы это сделаете, если вы поместите неправильный тип топлива, было бы слишком поздно. Boooooooom! Разумеется, объекты не взрываются.)

Сказав это, иногда невозможно выполнить проверку на одном сеттере, поскольку он может зависеть от другого свойства (которое еще не установлено). Что-то вроде VATID для пользовательского объекта, в котором должно быть доступно свойство user_type (private | company), чтобы иметь возможность проверять и форсировать VATID для компаний. В этом случае вы бы сделали PrePersist/PreUpdate validation.

Смежные вопросы