教程集 www.jiaochengji.com
教程集 >  脚本编程  >  php  >  正文 PHP——MVC模式讲解与实例

PHP——MVC模式讲解与实例

发布时间:2020-11-15   编辑:jiaochengji.com
教程集为您提供PHP——MVC模式讲解与实例等资源,欢迎您收藏本站,我们将为您提供最新的PHP——MVC模式讲解与实例资源
一、 MVC模式流程图

20190321174858211.png

二、MVC概念

(1)作用

MVC包括控制器(Controller),模型(Model),视图(View)。

控制器的作用是调用模型和 视图,将模型产生的数据传递给视图,并让视图去显示

模型的作用是获取数据并处理返回数据

视图的作用是将取得的数据进行美化,并向用户终端输出

(2)执行过程

1. 浏览者 -> 调用控制器,发出指令

2. 控制器 -> 按指令选择合适的模型

3. 模型 -> 按指令取数据

4. 控制器 -> 按指令选视图

5 . 视图 -> 把取到的数据展示出来

三、简单的MVC实例

(1)目录规划

20190321200614451.png

(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.运行结果

20190321202052335.png

四、简单的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

20190321202550341.png

想了解更多PHP相关问题请访问教程集:PHP视频教程

以上就是PHP——MVC模式讲解与实例的详细内容,更多请关注教程集其它相关文章!

  • 本文转载于:CSDN,如有侵犯,请联系jquerycn@qq.com删除
  • 您可能感兴趣的文章:
    PHP——MVC模式讲解与实例
    MVC框架的理解
    书评Object-Orientated Programming with PHP5
    简单介绍MVC思想与PHP实现MVC的方法
    Javascript MVC框架简介
    php模版生成html的小例子
    php mvc开发模式的一点思考
    php有什么框架模式
    什么是MVC模式
    什么是MVC设计模式?

    [关闭]
    ~ ~