@MrxAlexo

Структура паттерна MVC и модели?

Заинтересовался паттерном mvc, показался мне удобным. Но сразу же появились вопросы.

Имею структуру проекта:
/app/controllers/ - мои контроллеры, /app/views/ и /app/models/ - тут все понятно.
/app/core/ - тут роутер, и основные классы controller, model, view.
/app/core/utils/ - здесь основные классы для работы с переменными сервера, входящими данными, в общем все, что связано с сайтом.

Вопрос 1. Мой класс для работы с базой данных расположен в моделях, там же классы для работы с таблицами в бд User и Goods (тоже расположены в моделях). Я вызываю все эти модели в /app/core/model.php - основной класс моделей, который в свою очередь вызывается в основном контроллере. Насколько это правильно? Потому что на данный момент, все мои модели вызываются не зависимо от того, используются они или нет.

Вопрос 2. Что вообще должно быть в моделях? Насколько правильно создавать функции для работы с той или иной таблицей? Где подчерпнуть пример?

Вопрос 3. Возможно кто-то знает хорошие книги, где подробнее рассматривается этот паттерн, в том числе при работе с бд?

Для модеров: задавать вопросы отдельно - не вариант, теряется смысл.
  • Вопрос задан
  • 71 просмотр
Пригласить эксперта
Ответы на вопрос 1
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
Вообще при наличии интернета все вопросы гуглятся за время меньшее чем написание этого поста...
Мой класс для работы с базой данных расположен в моделях,
Это не класс модели. Это адаптер работы с бд.
там же классы для работы с таблицами в бд User и Goods
Это больше похоже на мвц, но вот дальше какая-то непонятная фигня:
Я вызываю все эти модели в /app/core/model.php - основной класс моделей, который в свою очередь вызывается в основном контроллере.
Куда вызываете? Зачем? Ваши User и Goods должны наследоваться от модели, если у вас выбран тип Active Record. А в контроллере вы уже создаете экземпляры нужных классов.

Вопрос 2. Что вообще должно быть в моделях? Насколько правильно создавать функции для работы с той или иной таблицей? Где подчерпнуть пример?
В модели должна быть реализована бизнес логика и методы работы с бд (в случае Active Record), в некоторых случаях так же связи объектов между собой. Все это легко гуглится, посмотреть можно в любом современном фреймворке, например что-то простенькое типа fat-free или более серьезное типа лары или симфони.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
24 апр. 2024, в 20:35
5000 руб./за проект
24 апр. 2024, в 19:51
1000 руб./за проект