Структурирование моделей в рамках MVC? - PullRequest
2 голосов
/ 01 июля 2010

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

  • Каждая таблица в БД имеет свою собственную модель, т.е.accounts.php, books.php и т. д.
  • Модель представляет собой набор методов, относящихся к основному модулю веб-сайта, т.е.модель входа в систему, которая содержит такие методы, как вход в систему, выход из системы и т. д. модель, которая обрабатывает сеансы, модель, которая обрабатывает файлы cookie

Спасибо за ваше время!

Ответы [ 5 ]

4 голосов
/ 01 июля 2010

I предлагает , что модель! = Таблица в целом.

Вместо этого модель представляет некоторый компонент логики предметной области вашего приложения.Это может иногда соответствовать один к одному таблице базы данных, но также может случиться так, что модель состоит из нескольких таблиц базы данных или не содержит таблиц базы данных.И некоторые модели могут состоять из коллекции других моделей.Также некоторые таблицы могут использоваться в нескольких классах моделей.

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

В MVC Controller и View относительно простыи просто.Они соответствуют обработке ввода и генерации вывода .Модель сложна, потому что это остальная часть данных и логики вашего приложения .Добро пожаловать в ОО-проектирование и архитектуру!

Хороший ресурс, позволяющий узнать, как эффективно создавать модели, - это Доменно-управляемый дизайн от Эрика Эванса или бесплатная короткая онлайн-версия Domain-Управляемый дизайн быстро .

2 голосов
/ 01 июля 2010

На этот вопрос сложно ответить. Посмотрите на некоторые мои ответы на похожие вопросы

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


Я отмечаю это вики сообщества, так как он содержит только некоторые ответы. Не стесняйтесь голосовать за них вместо этого ответа.

1 голос
/ 01 июля 2010

Единственная мысль, которая может вызвать беспорядок в папке вашей модели, - это если ваше приложение становится все больше и больше, и ваша структура не позволяет вам структурировать модели в подпапках, или вы этого не делали.

Попробуйте ORM. У него очень строгие правила, поэтому вы не можете делать много неправильных в своей структуре.

1 голос
/ 01 июля 2010

ORM как Doctrine может очень помочь в наведении порядка, но это добавляет накладных расходов.

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

1 голос
/ 01 июля 2010

Модель на таблицу является наиболее распространенным способом. И я думаю, что самый чистый. Ваш второй метод закончится как неструктурированный беспорядок.

Но я думаю, что в итоге они оба будут одинаковыми. Потому что вы, вероятно, коснетесь только одной таблицы в модели сеансов и одной таблицы в модели входа и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...