@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 или более серьезное типа лары или симфони.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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