介绍
自从假期之前,我一直在思考模型-视图-控制器(MVC)方法,并且我真的需要在我的使用PHP创建的Web应用程序中熟练掌握它。
到目前为止,我理解了一般的MVC概念及其原因,但我需要帮助。这是一个大学项目,当我问关于MVC的问题时,我的项目顾问并不是非常有帮助。
应用程序
这是一个任务管理系统或待办事项列表。目标是:用户可以使用他们的Facebook账户登录,创建、修改或删除任务,然后注销,该应用程序由JavaScript和PHP创建,拥有一个非常简单的界面。
事实
我有一个静态的PHP页面here,其中包含像“top_div”和“main_div”之类的div。目标是将“controller.php”包含(我还没有创建此文件)以在视图和模型之间进行服务。
重要提示:页面上的所有内容都使用jQuery,因此用户永远不会看到页面刷新。我有一个函数,可以淡出div中的内容,获取新请求的内容,将其放置在div中(隐藏,因为div已经淡出),然后再次淡入div。
目标是控制器从模型请求,然后发送回(例如)Facebook登录按钮到视图。这个Facebook登录按钮是HTML。还将有其他的内容,如文本和html,并且如果用户已经登录,“Welcome”将使用PHP、jQuery和cURL发送到#main_div中。
我正在使用对象,所以根据我理解,我需要实例化对象来做数据库连接和查询。在哪里实例化对象?我读到它们应该在控制器中创建,但从我读到的所有其他内容来看,控制器应该简单明了,只告诉模型视图想要什么,并充当中间人。我认为(并且这对我更有意义)是在模型中实例化对象。
1)因此,请解释一下在模型中实例化对象是否不正确。如果不是这种情况,那么对我的MVC方法的理解来说会更好。
假设用户已经登录。我将在视图(index.php)上显示他们的姓名和Facebook图片。如果您访问上面链接中的网站,则可能会看到一个小白框,在那里将显示此图片。用于用户图片的PHP代码如下:
<img src="https://graph.facebook.com/'.$fbid.'/picture" width="79" height="64" align="center" style="opacity:0.8;">
2) 由于这个HTML将被传递给视图,使用上面描述的jQuery函数在DIV中显示,所以我的控制器可以有这种信息输出吗?我的控制器可能会有以下代码:
如果用户已登录(通过模型检查),则 {发送以上HTML到#main_div};
我可能会在路上想到更多问题,但请有人帮助我更好地理解我正在做什么吗?