使用纯php建立MVC框架,仿照Thinkphp的目录结构

其实我又在想,MVC是什么东西,为什么要采用MVC,它能干啥?

分层的好处是什么?

好了,由于最近自己在做一个项目,用了thinkphp,天天看这玩意儿,我就在想,要不自己也写写看,或者效率,性能没有人家的高,试试看呢

开始贴写代码出来?
这里写图片描述

<?php 
    $modules     =     $_GET['module'];        //模块
    $action      =     $_GET['action'];        //模块下的动作
    $module      =     $modules.'Action';      //模块文件名     

    if (file_exists('Lib/Action/'.$module.'.class.php'))
    {
        include_once ('Lib/Action/'.$module.'.class.php');        //根据URL加载                
        $module     = new $module();
        $module->$action();        
    }else
    {
        echo 'no is file!';    
    }    
?>

访问地址是这样子的http://localhost/MVC/index.php?module=Index&action=index

访问了之后,获取了到不同的参数,自动引入文件

此时看到:

include_once ('Lib/Action/'.$module.'.class.php');        //根据URL加载                
$module= new $module();
$module->$action();

等同于什么呢?

include_once ('Lib/Action/IndexAction.class.php');    //根据URL加载     
$module     = new IndexAction();//实例化
$module->index();//当前模块下的这个方法

那好了,接下来,再看看Lib/Action/IndexAction.class.php里面到底又什么东西呢?

<?php     
//我是模块叫IndexAction,它下面又一个方法index,这个模块让model(模型)干事去,它还让index.php去表现(显示),末后的model它都干了些啥?
    class IndexAction{
        function index(){
            include_once ("Lib/Model/IndexModel.class.php"); //一个模块对应着一个模型,当然这个模型你可以完全不要,直接在模块里面做这份工作,建议还是遵循MVC
            $model = new IndexModel();              //同样的我干了一件事情,我把$model请出来了
            $title = $model->title;                //我找$model要了一个title,我想把这个title给我亲爱的index.php
            include_once('Tpl/default/Index/index.php');   //用来显示的,这里我更不就没有用到html
        }
    }
?>

让我model出来秀一下Lib/Model/IndexModel.class.php

<?php 
    class IndexModel{
        public $title = "just for look";        
    }
?>

再看看的的模板Tpl/default/Index/index.php

<?php
echo $title
?>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值