Здравствуйте!
В процессе кодирования получил два метода, которые мне очень ненравятся. Какие-то франкенштейны получились.
.
Первый метод show_query_field().
Прототип метода:
show_query_field($query_field, $record_id, $exclude_fields=array())
- Строку $query_field, которая указывает на «шаблон» запрашиваемых данных через HTML форму. В шаблоне перечислены имена полей, их типы, условия проверки, всякие дополнительные атрибуты, имя SQL таблицы, где данные будут вставлятся/редактироваться.
- Число $record_id, которое используется для извлечения данных из нужной строки SQL таблицы, чтобы заполнить редактируемые поля. Если это число отрицательное, поля остатся пустыми.
- Список полей $exclude_fields, которые ненужно показывать в данной HTML форме.
Метод возвращает HTML-код формы запроса данных.
Что ненравится? Да все как-то коряво, не могу внятно сказать. Впринципе можно и так оставить... Больше не нравится второй метод.
.
Второй метод add_data_from_query_field()
Прототип метода:
add_data_from_query_field (
$query_field,
$record_id,
$direct_set_fields,
&$add_ending,
&$add_id,
$exclude_fields=array())
- $query_field - тоже самое что и в первом методе
- $record_id - тоже самое что и в первом методе
- $direct_set_fields - список полей и значений, которые задаются из кода, а не пользователем
- &$add_ending - флаг, что добавление в SQL базу произошло нормально
- &$add_id - индекс записи в SQL базе, которая была создана в момент добавления данных
- $exclude_fields - cписок полей, которые ненужно показывать при повторном запросе. Внутри метода, если данные чему-то не удовлетворяют, поисходит вызов повторного запроса.
Метод возвращает HTML-код отчета о добавлении данных.
Что ненравится? Да всё. Походу, наличие двух параметров, передвавемых по ссылке, одного необязательного параметра, да и вообще совокупность разношерстных передаваемых данных говорит о том, что метод какой-то неправильный. Но не могу понять, что же нужно отделять и куда, так как с другой стороны, для проведения добавления данных, в моем случае, именно такой «разношерстый» набор параметров и нужен.
.
Кто что может сказать по поводу? В какую сторону направить рефакторинг кода?