Как толерантнее передавать данные между моделями согласно идеологии MVC?
Добрый день!
Перерыл два самописных магазина, каждый был создан группой разработчиков, столкнулся с одним нюансом:
в модели Заказ - функция вставляет данные заказа в таблицу Заказов в БД, результат этой функции - LastInsertID.
Далее этот ID используется для вставки списка заказанных товаров в таблицу Товары из Заказа.
Нюанс - один движок делает вставку в БД внутри этой же функции (т.е. внутри функции два разных MySQL-запроса), второй движок делает это через вызов отдельной функции, которая лежит в этой же Модели (т.е. одна функция - это один запрос).
2 вариант в плане чистоты кода, должно быть, толерантнее. Это, конечно абстрагируясь от общей картины, потому что судя по вашему описанию архитектура там всё-равно так себе
alex-1917, На самом деле бессмысленно так по крупицам собирать хорошие практики.
Чтобы понять как такие вещи делать хорошо нужно как минимум:
1. Почитать об MVC, на Хабре например, несколько статей
2. Изучить какой-нибудь фреймворк на PHP, лучше всего(и проще) laravel.
3. Разобраться как работает Symfony, и понять разницу между Active Record и Data Mapper.
4. По качеству кода иметь прочитанной хоть одну книгу, например "Совершенный код" Макконнелла
Дальше совершенствоваться
Ну а по теме, lastInsertID - что-то страшное, и как происходит вставка данных до конца не понятно из описания, что там за 2 запроса.