您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

PHP——MVC模式讲解与实例

2024/7/9 0:38:32发布24次查看
一、 mvc模式流程图
二、mvc概念
(1)作用
mvc包括控制器(controller),模型(model),视图(view)。
控制器的作用是调用模型和 视图,将模型产生的数据传递给视图,并让视图去显示
模型的作用是获取数据并处理返回数据
视图的作用是将取得的数据进行美化,并向用户终端输出
(2)执行过程
1.  浏览者 ->  调用控制器,发出指令
2.  控制器 ->  按指令选择合适的模型
3.    模型    ->  按指令取数据
4.  控制器 ->  按指令选视图
5 .   视图    ->  把取到的数据展示出来
三、简单的mvc实例
(1)目录规划
(2)编写类文件
1. testcontroller.class.php   控制器类文件
命名规则:test(名字)controller(控制器文件).class.php ( 类文件 )
<!-- 首先实例化控制器对象,并调用指令方法, 方法里面实例化模型对象,调用取数据方法 并实例化视图对象,调用展示方法 --> <!-- 控制器的方法没有参数,而其他的就有参数 --><?php // 类名和文件名相同 class testcontroller{ function show(){ $testmodel = new testmodel();//按指令选择一个模型 $data = $testmodel -> get();//模型按照指令取数据 //按指令选择视图 实例化一个view的对象 $testview = new testview(); //把取到的数据按用户的样子显示出来 $testview -> display($data); } }?>
2. testmodel.class.php 模型类文件
命名规则:test(模型文件名称 )model( 模型文件).class.php 类文件
<?php class testmodel{ //获取数据 function get(){ return "hello world"; } }?>
3. testview.class.php 视图类文件
<?php class testview{ //展示数据 function display($data){ echo $data; } }?>
4. 单一入口文件
让他来调用控制器,而控制器去调用模型和视图
<?php//引入类文件require_once('/libs/controller/testcontroller.class.php');require_once('/libs/model/testmodel.class.php');require_once('/libs/view/testview.class.php'); //类的实例化$testcontroller = new testcontroller();//对象赋值给变量$testcontroller->show();//调用方法?>
5.运行结果
四、简单的mvc实例改进----方法封装
1. 封装一个实例化控制器等的对象和调用方法的函数
<?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.'();');//把字符串转换为可执行的php语句 } //封装一个实例化模型的对象和调用方法的函数 function m($name){ require_once('/libs/model/'.$name.'model.class.php'); //$testmodel = new testmodel(); eval('$obj = new '.$name.'model();');//实例化 return $obj; } //封装一个实例化视图的对象和调用方法的函数 function v($name){ require_once('/libs/view/'.$name.'view.class.php'); //$testview = new testview(); eval('$obj = new '.$name.'view();'); return $obj; } //为了安全性 ,过滤函数 //addslashes对’,字符进行转义 //get_magic_quotes_gpc()当前魔法符号的打开状态,打开返回true, function daddslashes($str){ return (!get_magic_quotes_gpc() )? addslashes($str) : $str; }?>
2.重新编写入口文件index.php
浏览器url访问形式 http://......index.php?controller=控制器名&method=方法名
<?php require_once('function.php'); //允许访问的控制器名和方法名的数组$controllerallow=array('test','index');$methodallow =array('test','index','show');//用get方式接收url中的参数//过滤输入非法字符 并判断是否在数组里$controller = in_array($_get['controller'],$controllerallow )? daddslashes($_get['controller']) :'index' ;$method = in_array($_get['method'],$methodallow) ? daddslashes($_get['method']) :'index';//调用控制器和执行方法c($controller,$method); ?>
3.运行结果
浏览器访问  http://localhost:8080/mvc/index.php?controller=test&method=show  显示hello world
想了解更多php相关问题请访问:php视频教程
以上就是php——mvc模式讲解与实例的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product