简单的mvc类自动加载的编写与解析(二)

  一、自动加载类

     1)将自动加载方法放到基本类中

     2)模拟工作原理如何调用类 调用类须要有三个步骤 首先我们要用到一个方法 方法名为

   /*当类不存在触发这个方法*/
   spl_autoload_register('类的路径');(须要引入命名空间)
    

    3)将接过来的值中的反斜线改为正斜线用到的方法是:

   $class=str_replace('\\','/', 接过来的值);(因为输入一个反斜线是转义字符所以我们须要写俩个)

    4)在引入一个类的时候先要判断是否已经引用了这个类 如果引用了我们返回一个true 否则我们在执行自动加载的部分

    5)如果加载成功的话我们可以将这个类放到classMap数组当中,因为是一个静态的属性我们要用到self来引入

    6)测试我们的类是否能调用成功 如果报错 那我们可以看一下路径是否拼对了 

   p(类名); 
     7)这样我们就可以new \core\lib\不存在的类();去触发spl_autoload_register();的方法当这个类不存在的时候我们可以让它去找自动加载的类,如果这个自动加载的类存在的话我们可以给他返回一个true 这样可以避免我们重复加载问题 否则将类转化一下  在include进来 这样自动加载类就完成了

  

static public function load($class){
   	 //自动加载类库
   	 //new \core\route();
   	 /*$class='\core\route';
       IMOOC.'/core/route.php';
   	 */
   	  // p($class);
   	  // p(IMOOC . $class . '.php');
   	  if(isset($classMap[$class])){
       return true;
   	  }else{
	   	$class=str_replace('\\','/', $class);
	   	$file=IMOOC .'/'. $class.'.php';
	   	if(is_file($file)){
	      include $file;
	      self::$classMap[$class] = $class;
	   	}else{
	      return false;
	   	}
	   }
   }


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值