Где подключиться к БД в MVC - PullRequest
11 голосов
/ 10 февраля 2010

Я использую php и собираю MVC для своего веб-приложения. Я перешел к этапу, когда мне нужно подключиться к моей БД, посмотреть текущий URL, сравнить его с данными в моей БД, а затем вернуть правильное содержимое из моей БД пользователю.

Мой вопрос: куда мне поместить код, который подключается к БД и обрабатывает его? Будет ли это идти в классе модели?

Ответы [ 3 ]

10 голосов
/ 10 февраля 2010

Модель должна быть сущностью, которая активно использует соединение с базой данных, для простых моделей, использующих реализацию шлюза таблицы / активной записи, может работать. Для более сложных моделей средство отображения данных дополнительно изолирует базу данных от остальной части вашего приложения (что делает его менее инвазивным для изменения серверной части хранилища).

Контроллер должен обработать запрос и передать в модель все необходимые данные.

Тем не менее, простая настройка соединения с базой данных обычно выполняется с помощью какого-либо сценария начальной загрузки. Модель (или преобразователь данных) затем использует соединение. Я не уверен, что это технически подпадает под «контроллер». На практике большинство фреймворков имеют загрузчики, маршрутизаторы и фронт-контроллеры - как бы вы их ни называли, ваша база данных должна использоваться моделью , но настраиваться вашей загрузочной системой .

4 голосов
/ 10 февраля 2010

Все взаимодействия с базой данных находятся внутри класса Model.

2 голосов
/ 10 февраля 2010

Ну, модель - это просто определение объекта, которым может быть, например, Автомобиль. Таким образом, соединение с базой данных должно быть в Model абстрактном классе (который наследует класс Vehicle) с методами, которые могут сохранить эту информацию.

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

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