Лучшая практика codeigniter - несколько моделей - PullRequest
4 голосов
/ 04 марта 2010

Просто быстрый вопрос о наилучшей практике разработки MVC.

Допустим, у меня есть два контроллера (продолжение1, продолжение2), каждый из которых использует отдельную модель, модель1 и модель2.

все файлы сложные, модели содержат десятки методов.

Скажем, я закончил разработку первого контроллера, и я нахожусь в процессе работы над вторым. Мне нужно создать метод в model2, который будет точно таким же, как один из методов в model1. Это всего лишь крошечный метод, например, получить список каких-то категорий.

Каков наилучший подход к работе - должен ли я дублировать метод и включить его в мою модель2, или я должен извлечь его из модели1?

Разумно было бы получить его из model1, но я не знаю, повлияет ли это на время выполнения, так как это должно было бы загрузить обе модели.

Буду благодарен за отзыв

спасибо к

Ответы [ 3 ]

3 голосов
/ 04 марта 2010

Загрузка второй модели не окажет заметного влияния на время выполнения. Это, вероятно, путь.

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

1 голос
/ 19 апреля 2011

Может быть, вам действительно нужна третья модель. Если у вас есть метод, который используется во многих / всех ваших моделях, это действительно может быть уникальный набор данных, который заслуживает его собственного внимания. Кроме того, вы избавитесь от необходимости загружать несколько «больших» моделей и вместо этого иметь 1 большую и 1 крошечную модель.

0 голосов
/ 20 апреля 2011

Я столкнулся с такой же ситуацией. Я загружаю объект codeigniter по ссылке в каждую модель. Затем я могу загружать в мои модели другие модели, библиотеки, помощников и даже элементы конфигурации. Это помогает сохранить код модели вне контроллера, и я бы посоветовал это. Всегда держите его сухим (не повторяйте себя).

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