MVC怎么实现自动加载

MVC怎么实现自动加载

首先我们这个自动加载类放在的是load.php文件中,新建一个静态方法起名叫load。

static public function load(){

      }


然后我们在core目录下新建一个路由文件route.php , 首先便是命名空间,接下来给创建一个类名为route 。
<?php

    namespace core;
    class route
    {

    }
?>


我们要加载这个路由类,要三部分 ,首先需要一个方法来当我们new一个类时,类不存在便加载这个方法。将它放在入口文件中   include CORE.’/load.php’; 的下面。
     
 include CORE.'/load.php';
       spl_autoload_register('\core\load::load');


然后我们便在load.php文件中的load方法中写我们的类库,首先我们需要接受一个参数class,class的样子就是class=’\core\route’;我们需要把这个路径转换为项目的路径。首先我们需要把反斜线替换成 \ 。然后我们判断一下这个文件是否存在,如果是的话那我们就引入它,如果不是的话 我们就return false 。对于性能的考虑,这个类要是引入过一次就不用再引入了,所以我们建一个临时变量,来储存我们加载好的类 , 在我们引入一个类的时候我们先来判断这个变量中是否有我们要引入的类,如果有我们就直接返回true,没有在进行底下的加载,如果我们加载成功就用self放入我们的临时变量当中。
   public static $classMap=array();
   static public function load($class){

             if(isset($classMap[$class])){
                  return true;
             }else{
                     $class=str_replace('\\', '/',$class);
                     $file = MVC.'/'.$class.'.php';
                     //p($file);
                     if(is_file($file)){

                           include $file;
                           self::$classMap[$class] = $class;
                     }else{
                        return false;
                     }
             }

      }


这下我们的自动加载类这个功能便完成了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值