Как преобразовать данные POST в строку БД?

Пишу портал со статьями и загрузками. На данный момент написан составной маппер, который включает в себя два ключевых объекта:

1. DomainObjectFactory, отвечающий за преобразование raw данных из MySQL таблиц в объекты (с проверкой типов и проч.).

2. DBQueryFactory, отвечающий главным образом за преобразование DomainObject в SQL INSERT запрос - то есть фактически выполняющий обратное действие.

Теперь пишу форму и методы для добавления материалов. Возникает вопрос: что правильнее делать с POST данными - сначала строить с помощью DomainObjectFactory объект, а потом с помощью DBQueryFactory записывать его в БД или напрямую писать данные из POST в БД?
Выполняют ли популярные фреймворки, работающие с MySQL, промежуточное преобразование в объект?
  • Вопрос задан
  • 324 просмотра
Пригласить эксперта
Ответы на вопрос 2
Writerim
@Writerim
Заполнить позже...
У вас должна быть ORM которая через себя прогоняет данные и ей должно быть без разницы куда и как вы эти данные из нее принимаете или отдаете. Она должна все данные, которые попадают в нее подгонять под себя. И все манипуляции с БД проводить только через нее.

пример добавления
model::add( array( ... ) );
model::find( array( ... ) );
model::append( $_POST );
//  и так далее


Выполняют ли популярные фреймворки, работающие с MySQL, промежуточное преобразование в объект?

Многие из них. Только скорее всего каждый по своему.
Ответ написан
sanchezzzhak
@sanchezzzhak
Ля ля ля...
Тоже считаю что должна быть некая ORM.
НА пальцах в фреймворках модели работает так

У модели задана таблица и конектер(mysql например)
1 получаем схему таблицы для всех последующих нужд
Какие поля у модели + имя PK

Если создается модель через конструктор значит новая запись.
Если модель нашлась через специальные методы ORM значит это не новая запись.
Внутри класса нужно будет сделать приватный флаг что то типа $_newRecord = true|false;

В модель обычно можно занести данные через конструктор массивом или через специальные методы , как описал выше товарищ.

Ключ пост запроса это свойство в модели(таблице колонка) ну значение это значение(колонки).

Рекомендую все таки взять фреймворк Laravel Yii2 выбирайте сами.
Зная какое у нас состояние модели _newRecord мы можем сделать Update или Insert запрос.

ЗЫ PK ключи нельзя задать через POST иза соображения безопасности.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы