А если хотите реально помочь то буду благодарен.
Я в ООП только начинаю. Сейчас пишу класс проверки полей формы, он только в начальном состоянии. но некоторые функции он уже исправно выполняет. Подскажите может както можно модернизировать код чтобы он был более элегантен.
Вот сам код:
abstract class ValidForm{
protected $validTrue; /* Путь к изображению или сообщение, об удачной проверки. Может быть пустым */
protected $validFalse; /* Содержит путь к изображению или сообщение о непройденной проверки. Может быть пустое */
protected $flagVyvodForm=true; /* Флаг указывающий об удачной проверки всей формы при неудачной проверки будет содержать False */
protected $messageLIST; /* Массив сообщений о пройденной или непройденной проверки поля формы. Ключи массива имена полей форм */
protected $dataForm=array(); /* Массив данных полей формы. Ключи массива имена полей формы. Элемент массива будет пустой если данные
формы не пройдут проверку */
public function __construct ($validTrue="", $validFalse=""){
/* Устанавливам переменны */
$this->validTrue=$validTrue;
$this->validFalse=$validFalse;
}
/* метод для проверки данных формы */
public function SetProverka ($data, $namePole, $filtres){
if(!is_array($data)) {
$this->KodProverki($data, $namePole, $filtres);
}
else {
/*Тут будет выполняться проверка если будут поля формы с одинаковым именем*/
}
}
/* Производит запись в переменные в зависемости от результатов проверки */
private function KodProverki($data, $namePole, $filtres){
$data=trim($data,"\x00..\x2D"); /* удаляет первые 45 символов ASCII кода, как сами посебе так и в начале и конце строки */
foreach ($filtres as $klyuch=>$znachenie){
/* разбиваем строку на подстроки по разделителю
* в нулевом массиве сообщение
* в первом массив данные для проверки если надо
*/
$znachenie=explode('|', $znachenie);
if (self::$klyuch($data, $znachenie[1])) {
$this->dataForm[$namePole]=$data;
$this->messageLIST[$namePole]=$this->validTrue;
} elseif(!empty($znachenie[0])) {
$this->messageLIST[$namePole]=$znachenie[0];
$this->dataForm[$namePole]="";
break;
} else {
$this->messageLIST[$namePole]=$this->validFalse;
$this->dataForm[$namePole]="";
break;
}
}
}
/* Статический метод required (поле обязательно к заполнению) возвращает FALSE если поле пустое
* или TRUE если заполнено
*/
static function Required($data){
return (!empty($data));
}
/* Статический метод Maxlength (максимальная длина длина строки)
* возвращает FALSE если строка больше допустимой длины и TRUE если меньше или равно
*/
static function Maxlength($data,$val){
return (strlen($data) > $val) ? FALSE : TRUE;
}
/* Статический метод Minlength (Минимальная длина длина строки)
* возвращает FALSE если строка меньше допустимой длины и TRUE если меньше или равно
*/
static function Minlength($data,$val){
return (strlen($data) < $val) ? FALSE : TRUE;
}
abstract public function GetWrite();
}
class Proba extends ValidForm {
public function GetWrite (){
$fg=$this->messageLIST;
return($fg);}
public function Getmess(){
$tt=$this->dataForm;
return ($tt);
}}
$messT="правильно";
$messF="неправильно";
$data="проверка"; /*данные поля*/
$namePole="proba";/* имя поля*/
$rules=array("Required"=>"не должно быть пустым", "Maxlength"=>"Длина не больше5|9", "Minlength"=>"длина не меньше|2"); /*фильтры проверки*/
$te=new proba($messT, $messF);
$te->SetProverka ($data, $name, $rules);
print_r ($te->GetWrite());
echo "<br>";
print_r ($te->Getmess());