MVC哪个更好?

时间:2012-08-30 04:57:41

标签: php model-view-controller

我有存储过程控制器模型

我应该在我的程序或模型中执行数据库错误检查[没有行返回,表是否存在冲突的主键,指定了无效值等?]?我应该从哪里向用户显示消息[更新成功,无法执行语句等]?

什么是更好的做法?

3 个答案:

答案 0 :(得分:4)

错误检查应该在模型层中进行。

具体而言,在data mappers或其他处理数据抽象的结构中。如果您正在使用PDO,则SQL错误会引发异常,这是存储抽象级别的句柄。这是通过将错误状态分配给您当时正在存储或填充的domain object来完成的。

控制器存在于完全不同的层:表示层。它不应该知道域业务逻辑的内部问题,它是由模型层处理的。这将导致leaking abstraction

在收集要显示的信息时,视图应首先请求其使用的services返回状态。如果服务通知视图有关现有错误状态,则查看请求更详细的信息,并决定如何对错误做出反应以及使用哪些组模板来显示错误状态。

答案 1 :(得分:1)

是的,所有错误消息和显示项都应在View中处理,因为数据库错误检查可以在模型中完成。

答案 2 :(得分:0)

在我看来,DB错误检查应该进入模型,显示(所有)进入“视图”层。你可以在这里找到关于制作MVC框架的好文章:

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