Что мы делаем с валидацией при использовании неявных сеттеров и геттеров в CF9? - PullRequest
1 голос
/ 24 июня 2011

Как мы справляемся с проверкой при использовании неявных сеттеров и геттеров? Я полагаю, что при использовании явных методов получения и установки мы будем делать что-то вроде:

public void function setFirstName() {
   if (! len(arguments.firstName)) {
      //throw some error/add an error to an error container
   } else {
      variables.firstName = arguments.firstName;
   }
}

Если мы используем неявные методы получения и установки, мы можем определить правила проверки в самом CFC, такие как:

/**
* @validate string
* @validateparams {minLength=2, maxLength=40}
*/
property String firstName;

Мои вопросы:

  1. Будет ли логика проверки в самом CFC или от вызывающего абонента?
  2. Как мы отлавливаем ошибки и возвращаем их пользователю для обратной связи? Я могу подумать об использовании try / catch, но должно ли это быть в контроллере или модели?

Я новичок в ООП, и я полагался на CFWheels , чтобы сделать все это для меня. Я хотел бы узнать, как обрабатываются эти функции в отсутствие фреймворка или, например, если бы я использовал Hibernate.

Ответы [ 2 ]

3 голосов
/ 24 июня 2011

Когда я учился в колледже на Java, проверка обычно проводилась в сеттере.Однако, поработав некоторое время в веб-разработчике, я заметил, что это, как правило, не очень хорошая идея, потому что вы обычно хотите создать пакет сообщений об ошибках и вернуться к пользователю.Поэтому метод validate() в объекте или метод validateX() на уровне службы, который возвращает набор ошибок, был бы более подходящим.

Сказав, что помимо ValidateThis, есть также http://hyrule.riaforge.org/, если вы работаете с CF9.

2 голосов
/ 24 июня 2011

Лично я не думаю, что проверка должна выполняться внутри объекта, который проверяется.Я предпочитаю внешний процесс, такой как ValidateThis http://www.validatethis.org/

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...