yii2的自动加载类文件
来源:互联网 发布:python 命令 编辑:程序博客网 时间:2024/05/18 11:17
第一次原创写文章哎:哄哄
一。查看了一下Yii2的加载原理:
每个命名空间都有对应的路径(然后文件名一定要与类名相同)。通过Yii::$classMap可设定。或别名也可识别。
当我要用一个不认识的类名时,会自动调用魔术方法Yii类下的spl_autoload_register,然后执行autoload方法,在这个方法里会把对应的类文件包含进来。
spl_autoload_register(['Yii', 'autoload'], true, true);//这个是自动加载的方法public static function autoload($className){ //$className=frontend\models\ImportBomForm //$classMap['frontend\models']='E:/phpstudy/WWW/zcplm/frontend/models' //然后会把ImportBomForm文件包含进去。 if (isset(static::$classMap[$className])) {//有对应的映射 $classFile = static::$classMap[$className]; if ($classFile[0] === '@') { $classFile = static::getAlias($classFile); } } elseif (strpos($className, '\\') !== false) {//有对应别名的 $classFile = static::getAlias('@' . str_replace('\\', '/', $className) . '.php', false); if ($classFile === false || !is_file($classFile)) { return; } } else { return; } include($classFile); 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?"); }}
二。说一下phpexcel的自动加载
当你包含PHPExcel文件时
require_once (Yii::getAlias("@common")."/components/phpexcel/PHPExcel/Reader/PHPExcel.php");PHPExcel.php文件的开会有以下,然后去执行他的自动加载。
/** PHPExcel root directory */if (!defined('PHPEXCEL_ROOT')) { define('PHPEXCEL_ROOT', dirname(__FILE__) . '/'); require(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php');}Autoloader.php会把一些不认识类在自己的包里找一下,如果找到就包含进去。
阅读全文
0 0
- yii2的自动加载类文件
- Yii2的YiiBase自动加载类、引用文件(autoload)
- yii2框架-yii2自身的自动加载(三)
- yii2框架-yii2自身的自动加载(三)
- yii2框架-composer的自动加载(二)
- yii2框架-composer的自动加载(二)
- yii2自动加载机制
- Yii2自动加载
- yii2-js文件加载的位置设定
- php类文件的自动加载机制
- php类文件的自动加载机制
- [yii2]不加载layout布局文件的实现方法
- Yii2设置前端资源文件的加载位置
- tomcat 自动加载类文件
- 自动加载类文件(__auto)
- __autoload自动加载类文件
- yii2的文件上传
- upupw环境下加载 Yii2的入口文件不能正常加载
- Android 电池低于5%时关机
- 织梦dedecms系统基本参数设置不能保存中文以及在编辑器下中文不显示的问题
- Android图表库MPAndroidChart(六)——换一种思考方式,水平条形图的实现过程
- Elasticsearch5.x Head插件安装
- ButterKnife相关问题及解决方案(不定时更新)
- yii2的自动加载类文件
- Socket、XMPP的实现原理、环信的实现原理
- 解决兼容性的方法整理
- Gradle入门系列(2):第一个Java项目
- 介绍神经网络文章集
- 《人性的弱点》第一章 待人接物的三大原则:读后感
- KEIL项目迁移IAR向导(中文)
- android AsyncTask介绍
- tween.js 用户指南