MVC自定义框架笔记

本篇是看了一遍后没看懂回来重看一遍后写的

控制器是做业务的

模型是做数据的

视图是用来展示数据的

数据库的操作用DAO来实现,使用PDO的二次封装实现

视图可以借助smarty模板

公告控制器处理公共业务代码

公共模型处理公共数据库操代码,整个框架自动加载

MVC自定义框架设计是按照设计思路,顺着代码的执行顺序去逐步编码的,先实现简单的,必须的逻辑代码,后期发现有新的需求,可以回头增加对应的功能(不是修改)。具体的思路按照设计的结构性来划分成多个部分

trturn在函数中使用return代表返回值,将函数结果内容返回,在文件中代表将return后跟的内容返回给文件包含处

一般开发时在文件初始化功能完成后,最重要的一件事就是将URL解析,并且找到合适的控制器以及对应的控制器方法:此时,我们就规定浏览器在服务器进行访问的时候,必须携带具体的控制器名称和相对的方法名字(如果有分组还需要分组信息)

//解析URL
    private static function set_url(){
        //获取前后台,控制器名字和方法名字:规定浏览器中必须带p参数,c参数和,a参数(p代表platform平台(前台,后台),c代表controller,a代表action)
        $p = $_REQUEST['p']??'home';        //如果没有带参数默认前台
        $c = $_REQUEST['c']??'Index';       //默认IndexController
        $a = $_REQUEST['a']??'Index';       //默认Index方法
        
        //解析只是占时的,不分发,考虑到后期还要使用,设定为常量
        define('p',$p);
        define('c',$c);
        define('a',$a);
    }

所有的类文件都在控制权,模型,核心文件夹中,所以应该定义多个类方法实现类的自动加载,但是所有文件类都有命名空间,所以要考虑到命名空间的影响,利用spl_autoload_register()方法来实现注册

//自动加载方法(自定义方法)
    private static function set_autoload_function($class){
        //$class 代表内存中不存在的类,如果有命名空间,那么此时带空间路径,需要取出纯类名
        //取出类名
        $class = basename($class);      //获得纯类名
        
        //判定对应文件夹是否存在,存在包含
        $core_file = CORE_PATH.$class.'.php';
        if(file_exists($core_file)) include $core_file;
        
        //判定控制器是否存在:包括前后台
        $cont_file = APP_PATH.P.'/controller/'.$class.'.php';
        if(file_exists($cont_file)) include $cont_file;
        
        //判定模型是否存在
        $model_file = APP_PATH.P.'/model/'.$class.'.php';
        if(file_exists($model_file)) include $model_file;
        //插件加载
        $vendor_files = VENDOR_PATH.$class.'.php';
        if(file_exists($vendor_files)) include $vendor_files;
    }
    //注册自动加载
    public static function set_autoload(){
        //利用spl_autoload_register进行注册
        spl_autoload_register(array(__CLASS__,'set_autoload_function'));
    }
    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值