2012-08-30 3 views
-1

У меня есть хранимая процедура, a контроллер и модель.MVC - лучшая практика?

Где я могу выполнить проверку ошибок базы данных [Нет строк, таблица имеет конфликтующий первичный ключ, недопустимые значения и т. Д.] В моей процедуре или модели? и откуда я должен показывать сообщения пользователю [Обновление успешно, Не удалось выполнить оператор и т. д.]?

Какова лучшая практика?

+0

читайте это http://www.roseindia.net/tutorial/java/jdbc/javamvcdesignpattern.html –

+0

Хранимая процедура не является видом, и поскольку вы не указали более подробную информацию о своем контроллере и модели - ответы вы получите будет очень ограниченным. Кроме того, похоже, что это не имеет ничего общего с MVC, я бы просто изменил вопрос: «где должна быть проверка ошибок хранимой процедуры». – alfasin

ответ

0

На мой взгляд, проверка ошибок БД должна идти в модель, показывая (все) на слой «вид». Вы можете найти хороший пост о том, чтобы в основе MVC здесь:

http://anantgarg.com/2009/03/13/write-your-own-php-mvc-framework-part-1/

+0

+1 Я полностью согласен! – alfasin

+1

-1: ужасная ссылка. Заполнено плохой практикой и полностью неправильным описанием MVC. –

1

Да, все сообщения об ошибках и элементы дисплея должны быть обработаны в View, где, как база данных ошибок поверка может быть сделана в модели.

+2

Нет, вы можете отображать * сообщения об ошибках в 'view', но ошибки не должны обрабатываться им. Обработка данных (и ошибок) должна выполняться с помощью 'model'. – alfasin

4

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

Конкретно, в data mappers или других структурах, которые занимаются абстракцией данных. Если вы используете PDO, ошибка SQL приведет к возникновению исключения, которое будет обрабатываться на уровне абстракций хранения. Это делается путем присвоения состояния ошибки для domain object, которые вы сохраняли или заполняли в это время.

Контроллер существует в совершенно другом слое: слой представления. Он не должен знать внутренних проблем бизнес-логики домена, которые обрабатываются модельным слоем. Это привело бы к leaking abstraction.

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

Смежные вопросы