在PHP中使用MVC越来越流行了,特别是在一些开源的框架当中。
1.概述
MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。
2.代码结构
3.代码实现
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
<?php
//function.php
//控制器调用函数
function C( $name , $method ){
require_once ( 'libs/Controller/' . $name . 'Controller.class.php' );
//$testController = new testController();
//$testController->show();
eval ( '$obj = new ' . $name . 'Controller(); $obj->' . $method . '();' );
}
//模型调用函数
function M( $name ){
require_once ( 'libs/Model/' . $name . 'Model.class.php' );
eval ( '$obj = new ' . $name . 'Model();' );
return $obj ;
}
//视图调用函数
function V( $name ){
require_once ( 'libs/View/' . $name . 'View.class.php' );
eval ( '$obj = new ' . $name . 'View();' );
return $obj ;
}
//过滤非法值
function daddslashes( $str ){
return (!get_magic_quotes_gpc())? addslashes ( $str ): $str ;
}
?>
<?php
//test.php
/*
第一步 浏览者 -> 调用控制器,对它发出指令
第二步 控制器 -> 按指令选取一个合适的模型
第三步 模型 -> 按控制器指令取相应数据
第四步 控制器 -> 按指令选取相应视图
第五步 视图 -> 把第三步取到的数据按用户想要的样子显示出来
*/
require_once ( 'View/testView.class.php' );
require_once ( 'Model/testModel.class.php' );
require_once ( 'Controller/testController.class.php' );
$testController = new testController();
$testController ->show();
?>
<?php
//testController.class.php
/*
控制器的作用是调用模型,并调用视图,将模型产生的数据传递给视图,并让相关视图去显示
*/
class testController{
function show(){
/*$testModel = new testModel();
$data = $testModel->get();
$testView = new testView();
$testView->display($data);*/
$testModel = M( 'test' );
$data = $testModel ->get();
$testView = V( 'test' );
$testView ->display( $data );
}
}
?>
<?php
//testModel.class.php
/*
模型的作用是获取数据并处理,返回数据
*/
class testModel{
function get(){
return "hello world" ;
}
}
?>
<?php
//testView.class.php
/*
视图的作用是将获得的数据进行组织,美化等,并最终向用户终端输出
*/
class testView{
function display( $data ){
echo $data ;
}
}
?>
|
运行结果:
PHP中的MVC
MVC[1]在软件工程中是一种软件的架构。从php的角度来讲MVC有一些不同。
Model(模型),程序应用功能的实现,程序的逻辑的实现。在PHP中负责数据管理,数据生成。
View(视图),图形界面逻辑。在PHP中负责输出,处理如何调用模板、需要的资源文件。
Controller(控制器),负责转发请求,对请求处理。在PHP中根据请求决定调用的视图及使用的数据。
为什么使用MVC
MVC的主要作用是为了将代码分层、分类。
MVC的主要目的是为了解决Web开发中分离开发与设计工作,使其工作相对独立。
在这样的过程中还发现了其他的一些优点,网站的目录结构更加清晰,网站更易维护与扩展,可以实现模块的复用。