PHP之简单实现MVC框架
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
|
<?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 ; } ?> |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
<?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(); ?> |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
<?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 ); } } ?> |
1
2
3
4
5
6
7
8
9
10
11
|
<?php //testModel.class.php /* 模型的作用是获取数据并处理,返回数据 */ class testModel{ function get(){ return "hello world" ; } } ?> |
1
2
3
4
5
6
7
8
9
10
11
|
<?php //testView.class.php /* 视图的作用是将获得的数据进行组织,美化等,并最终向用户终端输出 */ class testView{ function display( $data ){ echo $data ; } } ?> |
运行结果:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
2014-12-02 Java注解浅谈
2014-12-02 全面解析Java注解
2014-12-02 树莓派学习笔记——Restful服务 采用slim php apache
2014-12-02 物联网学习笔记——构建RESTFul平台1
2014-12-02 PHP再学习5——RESTFul框架 远程控制LED
2014-12-02 Slim安装以及使用
2014-12-02 理解RESTful架构