3

Мои контроллеры для обновления и создания объекта довольно похожи - они оба выполняют ту же проверку и перенаправление формы. Но они, конечно, называют разные методы в модели. Должен ли я объединить их или оставить их отдельными? Или я должен просто сделать отдельную вспомогательную функцию для проверки?Должен ли я объединить свои контроллеры создания и обновления?

Плюсы:

  • Один контроллер вместо двух
  • Нет дублирования кода проверки
  • представления (что я и сделал слияние) всегда может указывать на тот же контроллер

Против:

  • Объединенный контроллер беспорядочен - есть пара мест, где я должен проверить, является ли это обновлением или созданием.

ответ

2

Я почти всегда сливаю их. Такая же проверка, те же указатели на лицевую страницу и т. Д. Есть несколько проверок, которые вам нужно сделать, но я думаю, что они перевешивают недостатки.

И когда приходит время добавлять поля или модифицировать некоторую логику обработчиков, это намного проще сделать.

0

Как насчет создания метода проверки, которому передается переменная, которая будет обозначать режим (добавить или обновить) и вызвать ли вызов соответствующего контроллера после проверки?

0

Я бы не объединил два контроллера (я хотел бы иметь там некоторую однородность), чтобы быть СУХОЙ (это действительно важно), и чтобы метод контроллеров был тощим, я предпочел бы создать метод для общей проверки.

0

Обновление и вставка - это две разные вещи.

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

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

0

У меня не было бы другого контроллера, только разные методы в одном контроллере.

Контроллер будет «blog.php», тогда обновление - это один метод, а вставка - другое.

Например:

blog/add 
blog/update/1 

Таким образом, вы можете установить проверку в свойствах контроллера и использовать его только один раз.

Вы можете даже использовать ту же форму, если вы создаете массив $ data ['blog'] на основе сообщения или вытаскиваете из db. Это может быть слишком далеко, но это имеет смысл в некоторых ситуациях.

0

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

Я полагаю, это зависит от сложности формы, которую вы отправляете. Например, если вам необходимо проверить замену изображений, это может быть болью.

MVC о том, чтобы держать вещи маленькими и простыми, не так ли? Зачем смешивать его?