可锐资源网

技术资源分享平台,提供编程学习、网站建设、脚本开发教程

MVC从入门到精通

本文章为连载文章PHP面向对象的第二篇

建议先阅读前篇文章:PHP面向对象编程(二)

mvc思想原理

mvc思想简单演示

需求:

在一个网页上,根据用户的请求(选择),来显示不同的时间效果:

效果1:只显示年月日

效果2:只显示时分秒

效果3(默认效果)显示年月日时分秒;

他们之间的关系大致如下:

MVC框架思想原理图

控制器:

Controller,是一个php文件,由浏览器直接请求(访问);

它需要做2件最核心的工作:

1,(根据请求),决定需要什么数据,并去调用模型文件(类),去获取该数据;

2,(根据请求),决定需要将数据显示在哪个视图文件中。

模型:

Model,是一个php文件,不能直接请求,只能“被载入”而发挥作用。

它的核心工作只有一个:

(根据控制器的要求)去生产数据;

视图:

View,是一个“伪html文件”(因为其中有极简单的php代码),它也不应由浏览器直接请求;

它的作用是:

结合html和css代码,显示相应的变量(数据)

有一个现实生产的类比原理图,可做参考:

类比:

mvc思想演示典型案例

目标:

(删除功能先不做)

模型文件(UserModel.class.php):

控制器文件(ShowAllUser.php):

视图文件:

模型层(Model)的典型实现

模型层的主要作用:

用于处理数据的存取操作,比如表的增删改查;

通常都是根据“控制器的要求”,以返回合适的数据;

有时候,控制器还需要“传递过来”相应的数据,才能获取对应的结果数据;比如:

获取id为5的用户的信息,此时控制器就需要传递过来“5”这个数据;

模型层的典型代码模式

class 模型类名{

function 方法1(){。。。}

function 方法2(){。。。}

function 方法3(){。。。}

。。。。。。。

}

说明:

1,每个方法,都是为了获取“某种数据”;

2,有的方法,可能需要一些参数(形参);

3,这些方法,通常都需要跟数据库打交道,则就都需要“mysqldb”工具类及相关的数据库连接数据;

示例代码:

控制器中调用模型层获取数据的典型做法

require ‘模型层类文件’;

$obj = new 模型对象();

$data = $obj->某个方法();

基础模型类

实现模型类的单例——单例工厂

目标:

模型类本身不变——不保证其本身是单例的;

但:

通过,该“单例工厂”去获得模型类的实例,就是单例的。

我们要的是,设计出这样一个“单例工厂类”;

通过该单例工厂类,去“获取”模型类的对象(实例);

应用(在控制器类文件中):

整个模型层的类库结构图

dao: Data Access Object(数据访问对象);

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言