温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

PHP中MVC模式流程是什么

发布时间:2020-11-10 10:47:09 来源:亿速云 阅读:183 作者:小新 栏目:编程语言

这篇文章主要介绍了PHP中MVC模式流程是什么,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。

                                                           一、 MVC模式流程图

PHP中MVC模式流程是什么

二、MVC概念

(1)作用

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

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

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

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

(2)执行过程

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

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

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

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

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

三、简单的MVC实例

(1)目录规划

PHP中MVC模式流程是什么

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

PHP中MVC模式流程是什么

四、简单的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中MVC模式流程是什么

感谢你能够认真阅读完这篇文章,希望小编分享PHP中MVC模式流程是什么内容对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,遇到问题就找亿速云,详细的解决方法等着你来学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI