MVC学习笔记(一)

由于学习laravel之前,没有接触过php的MVC框架,所以理解上有些费力,于是决定先学习MVC。。。(ps:我是看的慕课网学习视频,大家可以戳进去看看,讲讲得挺好的)

  • 什么是MVC
    这里写图片描述

  • MVC的M-V-C之间的协同工作:
    这里写图片描述

-MVC文件目录结构:
这里写图片描述


  • 什么是单一入口文件:
    这里写图片描述

  • MVCtest文件目录结构:
    这里写图片描述
    具体代码如下:

index.php

<?php
    /**
     * 第一步:浏览者 ->调用控制器,对它发出指令
     * 第二步:控制器 ->按指令选取一个合适的模型
     * 第三步:模型   ->按控制器指令取相应数据
     * 第四步:控制器 ->按指令选取相应视图
     * 第五步:视图     ->把第三步取到的数据按照用户想要的样子显示出来
     */

    //url形式  index.php?controller=控制器名&method=方法名
    require_once('function.php');

    $controllerAllow=array('test','index'); 
    $methodAllow=array('show','index');
    $controller = in_array($_GET['controller'], $controllerAllow)?daddslashes($_GET['controller']):'index';
    $method = in_array($_GET['method'],$methodAllow)?daddslashes($_GET['method']):'index'; 
    C($controller, $method);


?>

function.php

<?php
    /**
     * 调用控制器函数
     * @param string $name   控制器名
     * @param string $method 控制器执行函数
     */
    function C($name, $method)
    {                               
        require_once('./libs/Controller/'.$name.'Controller.class.php');
        //$obj = new testController();$obj->show();
        eval('$obj = new '.$name.'Controller(); $obj->'.$method.'();');
    }

    /**
     * 调用模型函数
     * @param string $name 模型名
     */
    function M($name)
    {
        require_once('./libs/Model/'.$name.'Model.class.php');
        eval('$obj = new '.$name.'Model();');
        return $obj;
    }

    /**
     * 调用视图方法
     * @param string $name 视图名
     */
    function V($name)
    {
        require_once('./libs/View/'.$name.'View.class.php');
        eval('$obj = new '.$name.'View();');
        return $obj;
    }

    /**
     * 参数过滤函数
     * @param  string $str 输入的字符串
     * @return string      转义后的字符串
     */
    function daddslashes($str){
        return(!get_magic_quotes_gpc())?addslashes($str):$str;
    }

?>

testController.class.php

<?php
    /**
    * 
    */
    class testController
    {

        function show()
        {
             $testModel = M('test');
             $data = $testModel->get();
             $testView = V('test');
             $testView->display($data);
        }
    }

?>

testModel.class.php

<?php
    /**
    * 
    */
    class testModel 
    {

        function get()
        {
            return "hello world";
        }
    }
?>

testView.class.php

<?php
    class testView{
        function display($data){
            echo $data;
        }
    }
?>

  • 程序执行流程:
    这里写图片描述
    这里写图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值