Я запрограммировал Rails, Django, Zend и CakePHP. Кроме того, Wordpress и Drupal.CodeIgniter MVC Model Logic
Теперь я «догоняю до скорости» в качестве довольно большого приложения в CodeIgniter.
Как правило, мой опыт работы с каркасами MVC привел меня к мысли, что модели представляют собой бизнес-логику в отношении реальных таблиц базы данных. В документах CodeIgniter и в базе кода, которую я просматриваю, я вижу созданные модели, которые представляют что-то неопределенное, как страница. Многие бизнес-логики написаны непосредственно в этих моделях, и они включают другие фактические модели данных. Я не уверен, что это идеально и после MVC.
Следует ли создавать модели за пределами моделей данных?
Кроме того, скажем, у меня есть модель данных, представляющая пользователя (таблица user
в БД). В этой пользовательской таблице есть столбец с именем gender
типа enum ('male', 'female'). Теперь я хочу заполнить раскрывающийся список вариантами gender из столбца перечисления.
Где наиболее уместно поставить эту логику?
Пользовательская модель - это объект, используемый для представления одного пользователя или строки в db ... справа? Поэтому не представляется возможным включить функцию в модель/класс пользователя, называемую «get_gender_options», потому что, хотя функция связана с таблицей пользователя, она НЕ относится к одному пользовательскому объекту. В Zend такая логика может быть встроена в сам объект формы.
Существует не «правильный» ответ, только один можно считать наиболее подходящим ...