Есть ли форма отправки формы? - PullRequest
1 голос
/ 17 мая 2009

В PHP, есть ли шаблоны, которые люди используют для отправки форм? Передача формы лучшие практики .. и т. Д.

Пример. Я пытаюсь выполнить операцию CRUD. Первоначально я использовал одну и ту же функцию для обработки отображения формы и отправки формы

class Somecontroller extends Controller {

  function form1_add() {
    // if submit exist save it in database
    // else
    // display the form
  }

  function form1_edit() {
    // if submit exist save it in database
    // else
    // display the same form
  }
}

Что мне не нравится ... в этой практике: вход в систему, чтобы проверить, есть ли отправка или это совершенно новая форма, выполняет ту же функцию.

Я думал о создании двух разных функций

form1_add() and form1_add_submit() 

для обработки этих операций. Но возникают другие проблемы, например, при неудачной проверке мне пришлось бы снова вызывать form1_add() из form1_add_submit(), чтобы отобразить эти ошибки проверки.

Какие другие практики люди используют для такого рода операций? Есть ли какие-то конкретные шаблоны для них?

Ответы [ 2 ]

1 голос
/ 17 мая 2009

Общий принцип, как и в любом программировании, состоит в том, чтобы сохранить ваши функции как можно более атомарными. Выполнение нескольких задач в рамках одной функции только усложняет вашу работу и затрудняет ее отладку. Вызов функций из другой функции - это очень хорошая идея, которая, по крайней мере, облегчит понимание вашего кода.

С точки зрения конкретного примера, я всегда отделяю от отображения и отправки / проверки формы друг от друга, потому что это совершенно разные части функциональности. Если вам нужна «симпатичная» проверка, возможно, стоит рассмотреть возможность использования JavaScript в самой форме, а затем просто отобразить список «ошибок» с помощью PHP, прямо над формой, если отправка формы все еще не соответствует вводу пользователь исправляет их).

0 голосов
/ 17 мая 2009

Я не знаю ни о какой «лучшей практике» или «стандартном способе сделать» это.

Лично я использую внешние функции, чтобы справиться с этим.
Если пользователь отправил, я вызываю userSubmited () и так далее. Я также разделяю их на отдельные файлы, так что я могу сохранить один с чистильщиком форм (только заголовок и т. Д.).

Кроме того, было бы неплохо сохранить часть обработки формы в одном файле, а UI-дисплей - в другом, чтобы сделать это еще чище.

...