PHP程序设计中的MVC编程思想分析
一、什么是MVC
简单地说,源代码是分类的和分层的。
MVC三个字母的含义:
m:模型模型,负责数据库操作。
视图视图负责调用模型来检索数据,然后调用模板来显示最终的效果。
C控制器控制器是程序的入口,决定要调用哪个视图,并告诉视图要做什么。
在这种情况下,该程序是在c-v-m或C-M的顺序执行,和MVC的名字是相反的。
两。为什么MVC
1。可以使网站程序的物理结构更加合理。
当建立一个网站使用PHP,最笨的办法,你可以建立每一页为一个PHP文件。如果你的网站仅仅是index.php,menu.php.article.php三页,那么你可以不是MVC,但是当我们做一般的网站,几十上百页,在根目录下的所有网页不被接受我们可以,所以你需要一个合理的想法,你的代码,按照功能分为不同的类别,和负载智能电话的程序,这是MVC来帮你做。
2。使代码更易于维护。
让我们看看单页。最愚蠢的方法是将PHP代码和HTML代码。这显然不够好。当你维护网站,你必须区分PHP和HTML之间,对程序员来说是一种灾难。所以很多人使用Smarty,所以你可以将数据处理和页面显示,这是非常好的,有很多人都是这样做的,但这不是MVC,MVC将要做的是分为数据处理逻辑处理和数据库操作,即分层。
这样,当你的程序出错或者你想修改时,它就会变得非常放松。当页面显示错误的时间时,您将检查v或模板文件。当出现逻辑问题时,您将检查C和V;当您操作数据库错误时,检查M。
事实上,MVC一般将PHP的一页分成4页,分别是C、V、M和模板,便于管理。
三.有利于代码重用。
MVC通常会把一个大函数放在一个目录中,这个目录由C管理。
例如,做一个网站的会员系统,我们可以把相关代码的成员在用户目录,由user_controller统一管理,当我们还需要另一个网站的会员系统,我们可以把这个目录在过去,你可以修改界面。
用三和php实现MVC的思想
我们需要三个基本类:控制器、视图和模型。然后不同的C,V和M继承。它们具有相应的性质和方法。如果你不理解它们,你可以看到面向对象的书籍。
这里提供给您一个MVC基类的设计思路,仅供参考:
1的设计。控制器类
程序调用的主()方法主要由GET和POST变量决定。
一个getmodel(元模型)的方法调用相应的目录时需要调用数据库。
在主()方法中调用的显示(view)方法,加载相应的v,并删除v的主()方法;
2视图类的设计类似于控制器的设计。
一种主()方法,当C被加载到V中时调用这个方法,以便程序可以继续执行。
一个getmodel(元模型)的方法调用相应的目录时需要调用数据库。
一个显示($模板),调用相应的模板文件,并将数据传递给模板。
3类模型的设计
可以定义一些属性,如这些表的操作、这些字段的操作,等等。
一个getdb()得到一个数据库类的一个实例方法(数据库类一般都是在一个单一的模式设计)。
加载数据的一种加载()方法。
添加()方法可以自动构造SQL语句,并根据定义的属性执行插入操作。
一个编辑()方法同上,但执行修改操作。
与上面相同,但执行删除操作的del()方法。
为了让新手更容易理解我的想法的工作原理,我们现在模拟用户登录场景,看看MVC是如何工作的。
现在,假设所有的数据提交给index.php,
第一步:
让我们提交每一变告诉index.php,C的使用,例如,可以使用index.php控制器=用户
那么指数接收得到的变量,不需要直接找到 /用户/ controller.php,所有的数据都输给他,是GET和POST是全球性的,所以是不需要做什么,主要功能可以直接调用C的index.php,任务完成。
第二步:
主要功能C开始,检查变量,发现是由用户登录操作(很简单,你可以张贴变做=登录),然后打电话给getmodel,加载相应的M(如 /用户/模型/模型。PHP),并实例化调用的负载方法,例如,加载用户数据,以确定是否与用户提交的密码,如果提交的数据是正确的标题跳转到错误页面,如果正确的话,来电显示()方法,加载相应的V(如 /用户/观点/细节。PHP),并实例化,称其主要()函数,进入第三步,这个任务已经完成,第二不在主要功能操作。
第三步:
你可以选择电话getmodel()加载M、改写和检索数据,或者你可以传递参数C当你实例化V,例如,会话。当v确定数据时,显示()将加载模板,MVC将完成。
当然,由于字数和精力的限制,这里只是一个非常简短的总结。实际执行时需要考虑许多细节,但当我设计MVC时,我认为这可能是相同的方法。我也用它在实践中,感觉很好。