Схема реализации интерфейса для добавления записи в БД на MVC

Духовность™

Продвинутый новичок
Схема реализации интерфейса для добавления записи в БД на MVC

Господа ученые! )

Кто-нибудь может написать абстрактную схему скрипта с использованием модели MVC для добавления записи в БД? Включая проверку входящих данных.

Очень хочется посмотреть на "реальный" пример такого подхода.

В основном интересует вопрос, кто(что) должен отвечать за проверку входящих данных? Модель? Или это реализуется на уровне контроллера?

Расскажите пожалуйста. Спасибо )
 
кто(что) должен отвечать за проверку входящих данных? Модель? Или это реализуется на уровне контроллера?
поиском найдешь минимум пару диких флеймов по этому поводу
без достижения консенсуса между весьма опытными в mvc девелоперами
 
StUV +1
больше чем пару...

-~{}~ 18.03.08 16:39:

Очень хочется посмотреть на "реальный" пример такого подхода.
что мешаем посмотреть на примере, например ZF, phpMVC (раньше я им пользовался, до появления пхп 5, сейчас я не в курсе на каком уровне проект), mzz
 
что мешаем посмотреть на примере
дык мне бы что полегче, чисто оттолкнуться... дальше сам обычно дохожу...

оиском найдешь минимум пару диких флеймов по этому поводу
а по какому критерию искать? и.. неужели все так спорно, что подобная задача вырастает в целые ветки??
 
моё мнение - в контроллере проверяется то, для чего модель (база данных, сложные расчёты и т.п.) не нужна, типа заполнены ли все поля, нужного ли они типа и т.д., а в модели уже - существует ли такой пользователь, не забанен ли он ну и т.п.
 
Beavis
Т.е. получается для каждого сценария, утрированно - гостевая книга, нужно писать свой контроллер?
 
triumvirat
гостевая книга может состоять из нескольких модулей, например: авторизация/регистрация, список пользователей, список сообщений и др.

т.е. запросы из таких как без применения MVC типа
/guestbook/auth.php?act=login&user=...&pass=...
/guestbook/members.php?act=showmembers
/guestbook/messages.php?page=5

можно сделать примерно вот такими

/guestbook/?controller=auth&act=login&user=...&pass=...
/guestbook/?controller=members&act=showmembers
/guestbook/?controller=messages&page=5

т.е. для каждого модуля свой контроллер, модель и несколько представлений (ну может быть и одно)

-~{}~ 18.03.08 17:17:

а в index.php прописывается класс, который на основе введенных данных выбирает нужный контроллер, нужное действие с этим контроллером и запускает метод (образно говоря $controller->$act

вот тут пример с более-менее нормальным вызовом нужных действий, но модель размыта с контроллером http://habrahabr.ru/blog/php/27079.html
 
а в модели уже - существует ли такой пользователь, не забанен ли он ну и т.п.
ИМХО, это все-таки обязанность контроллера. То есть он дергает необходимые модели (пользователь, топик и т. д.) получает от них необходимую инфу (состояние пользователя, открытость топика, права пользователя и т. д.) и на основе полученной информации решает - добавлять запись или нет.
 
одним словом есть много page-контроллеров, и 1 фронт-контроллер, который выбирает нужный
 
Автор оригинала: Bitterman
ИМХО, это все-таки обязанность контроллера. То есть он дергает необходимые модели (пользователь, топик и т. д.) получает от них необходимую инфу (состояние пользователя, открытость топика, права пользователя и т. д.) и на основе полученной информации решает - добавлять запись или нет.
да можно и так сделать...
MVC - это довольно размытое понятие, и нет единственно правильного решения как надо делать.

в моем случае получается что контроллер бегло проверяет данные, и если на первый взгляд они подходят - отдает модели, которая делает все необходимые действия и возвращает результат или ошибку
в твоем случае в этой картинке
sequence_diagram.gif
просто больше стрелочек от модели к котроллеру..

ну это кому как удобно
 
проверяю данные в контроллере, в валидатор записываю правила - если все выполнены, то выполняю сохранение в базу например, используя вот это.
http://wiki.agiledev.ru/doku.php?id=ooad:dp:data_mapper
Причем классы объекта и меппера у меня, расширяют базовый класс объекта и меппера.
 
Сверху