Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 关于MVC应用_Php_Model View Controller_Controller - Fatal编程技术网

Php 关于MVC应用

Php 关于MVC应用,php,model-view-controller,controller,Php,Model View Controller,Controller,我看过所有类型的教程: 视图运行控制器、将模型传递给视图的控制器、视图的控制器设置设置器 例如:用于阅读新闻的MVC。 控制器加载模型。如果模型的结果为“false”,我可以从包含不同块的另一个模型调用另一个方法 View类必须与相关,View\u found View\u not\u found if (model-> news === true) { $ comment = model-> comment () } 此代码段是控制器的责任还是此类逻辑属于业务模型的规

我看过所有类型的教程: 视图运行控制器、将模型传递给视图的控制器、视图的控制器设置设置器

例如:用于阅读新闻的MVC。 控制器加载模型。如果模型的结果为“false”,我可以从包含不同块的另一个模型调用另一个方法

View类必须与相关,View\u found View\u not\u found

if (model-> news === true) {
      $ comment = model-> comment ()
}

此代码段是控制器的责任还是此类逻辑属于业务模型的规则?

如果要查找模型新闻评论,需要创建评论模型,并从数据提供程序获取评论模型,然后呈现给查看

以下是控制器操作代码的一部分:-)。所有逻辑必须在控制器中。视图仅用于渲染内容部分

更新我建议使用here数据提供者。模型方法(getter)可以为模型返回DP对象。
这取决于您使用的框架。

就像拉斯穆斯·勒多夫所说的那样

MVC是当前web应用程序体系结构中的热门话题。它来自4事件驱动的桌面应用程序设计,不太适合web应用程序5设计。但幸运的是,没有人真正知道MVC的含义,所以我们可以称我们的表示层分离机制为MVC,然后继续

事实上,在web应用程序中,通常使用“面向动作的MVC”而不是“事件MVC”。 您已经有了一个了解其模型和要应用的视图的控制器。 要显示新闻,必须有一个作为模型的新闻类,一个处理数据库的新闻提供者。
您的控制器计算数据库和用户提供的数据,并调用适当的视图。

根据我的经验,我倾向于将模型和视图编程为“盲视图”。模型和视图只接收所需的参数,然后输出所需的参数。他们应该尽量少做甚至根本不做逻辑工作

对于模型,它执行次要检查,如参数类型和有效性,并返回结果或false。控制器不知道数据是如何存储的、存储在哪里、为什么存储等

对于视图,它最好只通过一个入口点接收字符串,这个函数将执行转义和回显。除此之外,控制器不应回显到页面

其他一切都由控制器消化,比如验证、调用所需内容、确定内容。控制器可以看到所有内容:

//get from model, pass parameter - that's it
if (model-> news ('all')) {
    //manipulate data for result
    //get appropriate view
    view->parse(html); //pass html to view, that's it
} else {
    //manipulate data for no result
    //get appropriate view
    view->parse(html); //pass html to view, that's it
}

最佳实践是在模型中保留业务逻辑

请参阅下面的链接以供参考


那么我的控制器会是什么样子$模型=新模型()$模型->新闻($param);如果($model->news===false){//get other content$model->other_content();loader('view_news_not_found',$model->other_content);}否则{//get comments news$model->comment();loader('view_news_found',$model->news,$model->comment);}我在使用mysqli,我的模型建立了连接,它应该调用函数“closeDB()”,控制器应该调用model的方法:
$model->after()
,或者应该使用
\u destruct
?谢谢:不一定需要断开连接,因为有时您可能不希望以后会对数据库进行进一步调用。然后设置控制器查看的属性是否正确:在控制器中<代码>$view->news=$model->news正确吗?谢谢你的帮助,我找到了一篇关于这个主题的非常有趣的文章