Добавление проверки к классу в PHP - PullRequest
0 голосов
/ 30 октября 2010

У меня есть несколько классов (что я делаю для класса генератора форм ... Я знаю, печально .. :(), в любом случае, иерархия выглядит следующим образом:

класс HTML_Form принимает абстрактные объекты класса FormElement (используя подсказку типа). Класс FormElement имеет несколько дочерних классов, таких как Textbox, Password, Radio .etc

Как мне добавить к ним проверку, например, метод, который я пытаюсь сделать в классе HTML_Form:

$ form = new HTML_Form ($ name);

$ form-> addElement ($ type, $ name, $ validation);

Надеюсь, все понимают ... и да, я такой нуб.

Ответы [ 2 ]

0 голосов
/ 30 октября 2010

Если вы пытаетесь выполнить проверку на стороне сервера, после получения POST / GET загрузите объект формы с переданными значениями.

В классы элементов формы добавьте функцию is_valid ().Вы можете добавить туда любые проверки, которые хотите.Если вы хотите использовать отдельную функцию проверки (которая не привязана к элементу, а зависит от формы), то есть somebdoy отправил форму, которая взяла ссылочный идентификатор для объекта базы данных, и вы хотите убедиться, что это правильный объект, поэтомуЭлемент формы input_text не будет естественным образом покрывать эту проверку.Добавьте еще одну функцию в ваши объекты form_element, которая называется "set_validation_function".оттуда перейдите в массив массива (класс, функция).Затем обновите функцию is_valid (), чтобы проверить, установлена ​​ли функция validation_function и используется ли она, call_user_function (array (class, function), params) для вызова определенной функции.

0 голосов
/ 30 октября 2010

Я бы, вероятно, сделал бы общий Validator класс и вызвал бы его, когда вы добавляете элемент. Строгие ООП эти элементы должны быть разными, т.е.

$input = new InputFormElement(array('name' => 'firstname', 'id' => 'firstname'), $validation);
$form->addElement($input);

/* ... */
if($input->validate())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...