PHP——MVC模式讲解与实例-php教程

资源魔 69 0
1、 MVC模式流程图

20190321174858211.png

2、MVC概念

(1)作用

MVC包罗管制器(Controller),模子(Model),视图(View)。

管制器的作用是挪用模子以及 视图,将模子孕育发生的数据通报给视图,并让视图去显示

模子的作用是猎取数据并解决前往数据

视图的作用是将获得的数据进行丑化,并向用户终端输入

(2)执行进程

1. 阅读者 -> 挪用管制器,收回指令

2. 管制器 -> 按指令抉择合适的模子

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

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

5 . 视图 -> 把取到的数据展现进去

3、简略的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

4、简略的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视频教程

以上就是PHP——MVC模式解说与实例的具体内容,更多请存眷资源魔其它相干文章!

标签: php开发教程 php开发资料 php开发自学 MVC

抱歉,评论功能暂时关闭!