Bermuda
Новичок
На время забудем про поля формы и представим элементы формы как объекты классов.Автор оригинала: Фанат
не вижу я там никакого шаблона собственно полей формы.
Во view мы определяем какого класс должен быть элемент формы
PHP:
$this->txtValue1 = new QTextBox($this);
PHP:
Value 1: <?php $this->txtValue1->Render(); ?>
PHP:
$this->txtValue1 = new QTextBox($this);
PHP:
$this->txtValue1 = new QFileControl($this);
2. Автоматически меняются методы валидации как на стороне клиента, так и на стороне сервера, что также снимает головную боль.
Конечно, ручную проверку никто не отменял, но подобным формам можно доверить тупую валидацию формата данных. Если ожидается номер счета в банке, то он должен быть введен в определенном формате (минимальный/максимальный размер, контрольная сумма, только цифры и т. д.). Благодаря повторному использованию классов элементов формы не приходится каждый раз ломать голову над валидацией формата данных. Подобная валидация уменьшает количество мусора летящего в приложение, также разгружает часть функционала. Если я ожидаю получить email-адрес, то вместо двух проверок -- валидность формата и существование адреса, мне остается сделать только одну -- последнюю.
Я уже слышу крики из зала "дизайн формы это не задача программиста" и "дизайнер теряет контроль над дизайном формы".
Абсолютно верно. Вот здесь показано каким образом дизайнер может контролировать дизайн формы.
Обратите внимание, что код View остался практически неизменным относительно прошлого примера. Внешний вид элементов формы задан в шаблоне. Более того, теоретически, подобный подход позволяет для разных клиентов выводить разные формы. Например в зависимости от браузера или в зависимости от прав пользователя.