passshift
@passshift
php, js, html5, css

Как писать так чтобы не повторяться?

Пишу интернет-магазин в качестве закрепления изученного материала.

В процессе написания возникает множество функций в целом похожих друг на друга, но тем не менее с различными условиями.

Так например при добавлении товара в каталог я делаю проверку введенных данных и затем в модели с помощью функции create добавляю товар если все указано верно.

После создания товара его понятное дело можно отредактировать, для сохранения изменений есть отдельная функция в модели, называется просто edit

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

Возможно ли объединить две функции в одну и как писать так чтобы не повторяться? Ведь помимо товаров в магазине предусмотрена возможность создания категорий, счетов на оплату, страниц и т.д.
  • Вопрос задан
  • 2331 просмотр
Решения вопроса 1
OlegTar
@OlegTar
программист .NET, Javascript, Perl
Ваша СУБД может поддерживать конструкцию "INSERT OR UPDATE", например, она либо вставляет элемент, либо его апдейтит, если он есть, но нужно, чтобы был уже известен айдишник.

можно также конструировать строку
$str = (условие ? 'INSERT ' : 'UPDATE ') . ''

В качестве условия можно взять проверку передан ли id в функцию.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы