CodeIgniter MVC Model Logic - PullRequest
       8

CodeIgniter MVC Model Logic

2 голосов
/ 29 декабря 2011

Я запрограммировал в Rails, Django, Zend и CakePHP. Также Wordpress и Drupal.

Теперь я "догоняю скорость" как довольно большое приложение в CodeIgniter.

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

Должны ли модели создаваться за пределами моделей данных?

Также допустим, что у меня есть модель данных, представляющая пользователя (user таблица в БД). В этой пользовательской таблице есть столбец с именем gender типа enum ('male', 'female'). Теперь я хочу заполнить выпадающий список полами из столбца enum.

Где наиболее целесообразно поместить эту логику?

Модель пользователя - это объект, используемый для представления отдельного пользователя или строки в БД ... верно? Таким образом, кажется неуместным включать функцию в пользовательскую модель / класс под названием «get_gender_options», потому что, хотя функция связана с пользовательской таблицей, она НЕ относится к одному объекту пользователя. В Zend такая логика может быть встроена в сам объект формы.

Не существует "правильного" ответа, только один, который мы можем считать наиболее подходящим ...

1 Ответ

0 голосов
/ 29 декабря 2011

Я бы, вероятно, просто поместил бы "get_gender_options" в модель, а не вставил ее в представление для формы. Чтобы он оставался СУХИМЫМ, но не помещался в модель, я бы создал помощника для этого.

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