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

Духовность™

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

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

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

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

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

Расскажите пожалуйста. Спасибо )
 

StUV

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

Alexandre

PHPПенсионер
StUV +1
больше чем пару...

-~{}~ 18.03.08 16:39:

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

Духовность™

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

оиском найдешь минимум пару диких флеймов по этому поводу
а по какому критерию искать? и.. неужели все так спорно, что подобная задача вырастает в целые ветки??
 

Beavis

Banned
моё мнение - в контроллере проверяется то, для чего модель (база данных, сложные расчёты и т.п.) не нужна, типа заполнены ли все поля, нужного ли они типа и т.д., а в модели уже - существует ли такой пользователь, не забанен ли он ну и т.п.
 

Духовность™

Продвинутый новичок
Beavis
Т.е. получается для каждого сценария, утрированно - гостевая книга, нужно писать свой контроллер?
 

Beavis

Banned
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
 

Bitterman

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

Beavis

Banned
одним словом есть много page-контроллеров, и 1 фронт-контроллер, который выбирает нужный
 

Beavis

Banned
Автор оригинала: Bitterman
ИМХО, это все-таки обязанность контроллера. То есть он дергает необходимые модели (пользователь, топик и т. д.) получает от них необходимую инфу (состояние пользователя, открытость топика, права пользователя и т. д.) и на основе полученной информации решает - добавлять запись или нет.
да можно и так сделать...
MVC - это довольно размытое понятие, и нет единственно правильного решения как надо делать.

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

ну это кому как удобно
 

melo

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