PHP程序设计中的MVC编程思想分析

PHP程序设计中的MVC编程思想分析
PHP的MVC编程思想在各种大型项目的开发中得到了广泛的应用。许多成熟的MVC框架已逐渐被广泛应用于各种项目,如thinkphp,CodeIgniter,symfony,Yii,CakePHP等等。本文对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时,我认为这可能是相同的方法。我也用它在实践中,感觉很好。

tag:编程思想程序设计电脑软件phpMVC

相关内容