Yii2中YiiBase自动加载类、引用文件方法分析(autoload)

 更新时间:2016年07月25日 09:41:37   作者:wjtlht928  
这篇文章主要介绍了Yii2中YiiBase自动加载类、引用文件的方法,实例分析了Yii中的autoload函数用于自动加载类及引用文件的相关技巧,需要的朋友可以参考下

本文实例分析了Yii2中YiiBase自动加载类、引用文件的方法。分享给大家供大家参考,具体如下:

在Yii2中这个函数是用来加载类的,没有直接引用文件的相关实现。但是这个也可以用来引用文件。

public static function autoload($className)
{
   /*
    * $classMap是一个name-value数组,
    * name为类的名称,
    * value为这个类的文件路径,其中路径可包含别名
    *
    * 首先在$classMap中查找是否设置了类别名路径
    */
  if (isset(static::$classMap[$className])) {
   $classFile = static::$classMap[$className];
   //如果路径是别名,获取别名路径
   if ($classFile[0] === '@') {
    $classFile = static::getAlias($classFile);
   }
  //如果$className以"\"开头,如:'\a\b\MyClass'
  //则会生成别名 '@a/b/MyClass.php',然后获取对应的别名路径。
  } elseif (strpos($className, '\\') !== false) {
   $classFile = static::getAlias('@' . str_replace('\\', '/', $className) . '.php', false);
   if ($classFile === false || !is_file($classFile)) {
    return;
   }
  } else {
   return;
  }
  //引用文件
  include($classFile);
  //如果debug,并且类不存在....
  //则异常
  //所以 在关闭debug的情况下 也是可以加载文件的
  if (YII_DEBUG && !class_exists($className, false) && !interface_exists($className, false) && !trait_exists($className, false)) {
   throw new UnknownClassException("Unable to find '$className' in file: $classFile. Namespace missing?");
  }
}

更多关于Yii相关内容感兴趣的读者可查看本站专题:《Yii框架入门及常用技巧总结》、《php优秀开发框架总结》、《smarty模板入门基础教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

相关文章

  • PHP序列化和反序列化深度剖析实例讲解

    PHP序列化和反序列化深度剖析实例讲解

    这篇文章主要介绍了PHP序列化和反序列化深度剖析实例讲解,实例讲解的非常详细,有对这方面不太懂的同学可以研究学习下
    2020-12-12
  • Yii2框架实现利用mpdf创建pdf文件功能示例

    Yii2框架实现利用mpdf创建pdf文件功能示例

    这篇文章主要介绍了Yii2框架实现利用mpdf创建pdf文件功能,结合实例形式分析了mpdf的下载、安装及结合Yii2框架创建pdf文件的相关操作技巧,需要的朋友可以参考下
    2019-02-02
  • php preg_match的匹配不同国家语言实例

    php preg_match的匹配不同国家语言实例

    这篇文章主要介绍了php preg_match的匹配不同国家语言实例的相关资料,需要的朋友可以参考下
    2016-12-12
  • PHP之预定义接口详解

    PHP之预定义接口详解

    这篇文章主要整理了PHP之预定义接口,在平时项目过程中比较常用的四个接口:IteratorAggregate(聚合式aggregate迭代器Iterator)、Countable、ArrayAccess、Iterator,需要的朋友可以参考下
    2015-07-07
  • php获取远程图片体积大小的实例

    php获取远程图片体积大小的实例

    有时候,我们需要知道远程图片的体积大小,那么PHP如何可以做到呢?
    2013-11-11
  • PHP之深入学习Yii2缓存Cache组件详细讲解

    PHP之深入学习Yii2缓存Cache组件详细讲解

    这篇文章主要介绍了PHP之深入学习Yii2缓存Cache组件详细讲解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-07-07
  • thinkphp中AJAX返回ajaxReturn()方法分析

    thinkphp中AJAX返回ajaxReturn()方法分析

    这篇文章主要介绍了thinkphp中AJAX返回ajaxReturn()方法,结合实例形式分析了thinkPHP中ajax操作的功能、数据返回格式以及ajaxReturn方法的简单使用技巧,需要的朋友可以参考下
    2016-12-12
  • 小程序微信退款功能实现方法详解【基于thinkPHP】

    小程序微信退款功能实现方法详解【基于thinkPHP】

    这篇文章主要介绍了小程序微信退款功能实现方法,结合实例形式分析了基于thinkPHP实现的微信退款功能相关实现技巧与操作注意事项,需要的朋友可以参考下
    2019-05-05
  • thinkPHP5 ACL用户权限模块用法详解

    thinkPHP5 ACL用户权限模块用法详解

    这篇文章主要介绍了thinkPHP5 ACL用户权限模块用法,结合实例形式详细分析了权限控制所涉及的数据库、配置、信息获取、验证规则等相关操作技巧,需要的朋友可以参考下
    2017-05-05
  • php加密解密函数authcode的用法详细解析

    php加密解密函数authcode的用法详细解析

    authcode函数可以说对中国的PHP界作出了重大贡献。包括康盛自己的产品,以及大部分中国使用PHP的公司都用这个函数进行加密,authcode 是使用异或运算进行加密和解密
    2013-10-10

最新评论