模型层(Model)的典型实现
功能
用于处理数据的存取操作,比如表的增删查改。
通常都是根据“控制器的要求”,以返回合适的数据。(取)
有时候,控制器还需要传递过来相应的数据,才能获取对应的结果,例如需要传递方法的参数。(存)
模型层的典型代码模式
class 模型类名{
function 方法1(){。。。}
function 方法2(){。。。}
function 方法3(){。。。}
。。。
}
说明:
1.每个方法,都是为了获取“某种数据”。
2.有的方法,可能需要一些参数(形参)
3.这些方法,通常都需要跟数据库打交道,所以都需要“mysqldb”工具类及相关的数据库连接数据。
控制器调用模型层获取数据的典型做法
require '模型层类文件';
$obj = new 模型对象();
$data = $obj -> 某个方法();
基础模型类
见demo-2
实现模型类的单例(模型工厂)
见demo-3
整个模型层的类库结构图
dao: Data Access Object(数据访问对象)
控制器层(Controller)的典型实现
控制器的作用
1.获取请求数据
2.调用模型获取数据:根据请求信息,以决定调用哪个模型来获取什么数据。
3.载入视图文件以显示数据:根据请求信息,以决定载入哪个视图文件用以显示需要显示的数据。
控制器类的常规做法
可以按此模式,写更多的控制器,但基本模式都一样。
其功能:
1.用于获取用户的请求数据。
2.获取模型数据。
3.显示到视图中——或也可能直接输出。
控制器的划分
通常,一个项目中,会有很多的功能。我们通常会将一些“相关功能”合在一起,称为一个“模块”,并使用一个控制器去“表达”这个模块中的各个功能——其实就是方法。
图示:
控制器的“动作”
一个控制器,就是一个类。
一个控制器,就只包含一些方法。
所以,这些方法,被称为“动作”——因为每个方法,一定对应了网页界面上用户所在的某个”操作(动作、请求)“
习惯上,所有动作(方法),都以“Action”这个词为结尾。
这些动作(方法名),将会对应网页上的链接(或跳转或提交)动作中的“act”参数的值
图示:
视图文件动作:
A:
B:
对应控制器中的动作:
A:
B:
实际应用中,在网页的连接(或跳转或提交)的时候,传参的参数名我们会写成“a”。
例如:
则在控制器中获取数据时:
基础控制器类
用于将所有控制器功能(方法、动作)中的一些常见操作集中处理,比如设定文档编码、实现页面跳转。
图示:
视图层(View)的典型实现
功能
展示页面的静态内容,以及相关的变量数据。
数据分类
数据分为:
a.普通标量数据:echo $v1
b.数组数据:foreach($arr as $key => $value){...} //循环输出
或:echo $arr['id']; echo ['age']; //单独输出
c.对象数据:echo $obj->p1; echo $obj->p2.