2012-05-27 4 views
3

Я создаю CRM с использованием рамки (codeigniter) в первый раз, и у меня возникают проблемы с определением того, куда должен идти определенный модуль, сохраняя при этом методологию MVC. Модуль автоматически генерирует нового пользователя (когда создается новая компания) и отправляет данные журнала на указанный адрес электронной почты.MVC: модель, контроллер или библиотека?

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

сценарии я Рассмотренные до сих пор:

  1. Логика в модели, где большая часть информации поступает из.
  2. Создайте совершенно новую модель, которая имеет дело только с этим модулем и несколькими таблицами.
  3. Поместите логику в контроллер, который занимается созданием компании.
  4. Создайте новую библиотеку или помощник и вызовите модуль, когда это необходимо.

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

Каков правильный подход для обеспечения соответствия с MVC?

ответ

1

Codeigniter позволяет вам быть гибким с вашим подходом MVC. Так что ответ, какой вариант:

  • Самый простой для вас (или вашей команды), чтобы понять
  • Самый простой закодировать поддерживать
  • Самый простой для кого-то еще, чтобы понять

Там нет смысла положить ваш код в библиотеку, если у вас нет других библиотек и не разбираются в библиотеках. Точно так же, как если бы все ваши модели были «жирными», но указывали только на одну таблицу, вы хотите, чтобы эта модель была единственной, которая также указывает на 4 другие таблицы?

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

Если эта «логика» встречается в нескольких местах, я бы поместил ее в библиотеку и позвонил в случае необходимости.

Смежные вопросы