##智能加载
![](https://box.kancloud.cn/052802e6fbf07fe61d849f0364aff2d8_1172x627.png)
~~~
实现原理:
修改代码 composer/ClassLoader.php函数为
function includeFile($file)
{
\msqphp\core\aiload\AiLoad::addClasses($file);
include $file;
}
或者使用框架本身加载类
处理过程: 未知->收集->整理->完成
+. 判断是否有缓存信息,有则判断对应状态,跳至对应步骤
+. 未知:没有对应信息,在结束时获得一次加载文件列表,进入收集模式
+. 收集:判断收集记录个数->不足继续收集
->整理所有记录,当出现概率超过70%时,将该文件放入待整理文件列表中.
+. 整理:整理文件列表,直至依赖关系解决,排序完成
+. 完成:直接载入
[
'type' => 'unknown|collect|miexd|last',
'collect' => [] // 收集记录,
'needful' => [] // 需要文件
'tidied' => [] // 整理后文件
'last' => [] // 最终列表
]
例:
需要加载123456789九个文件, 1需要23,2需要468,3需要57,45678无依赖
运行次数|结果
1| 收集12345678
2| 收集123456789
.....
10| 收集结果12345678十次,9五次,需要加载文件列表为12345678
11| 加载文件1,加载前未加载.放入tided,但依赖导致加载2345678, 当加载2-8时,时光荏加载前|已经加载,放至needful中
12| 将2-8反序加载,依次加载文件8765432,加载前均未加载,放入tidied中,此时,needful为空获得最终加载文件列表
13| 直接加载87654321.
~~~
- 序言
- 框架
- 框架获取
- 框架安装
- 应用结构
- 框架结构
- 应用目录结构
- 框架流程
- 命名规范
- 核心思想
- 扩展
- 类组装
- 框架基类
- Arr
- Arr扩展函数
- Date基类
- Dir
- Dir基类扩展函数
- Dom基类
- File基类
- Str基类
- Str随机字符
- Str操作函数
- Str随机创建
- Html基类
- Header基类
- Filter基类
- 框架核心
- 路由
- 路由信息
- 路由安装样本
- 路由逻辑原理
- 路由方法匹配
- 路由分组
- 路由构建
- 路由限制
- 路由规则
- 路由多语,多主题
- 路由常量
- 路由扩展
- 路由例
- 路由真静态使用
- 智能加载
- Response基类
- 定时任务
- 框架主类
- 控制器
- model
- model样本
- model使用
- view
- view路径
- view方法
- view配置
- view使用
- view真静态
- view例
- view多主题
- 模版引擎
- 模版引擎之单句解析
- 模版引擎之foreach解析
- cache
- cache注意事项
- cache配置
- cache方法
- cache使用
- cache扩展
- cache处理类File配置
- cache处理类Apc,Apcu配置
- cache处理类memcache,memcached配置
- cookie
- session
- 框架扩展
- Upload类
- 测试
- 测试流程
- 测试文件编写
- 测试文件例-数组篇
- 测试类函数
- 测试类使用
- 测试注意事项
- 常用功能
- 读码须知
- 个人技巧或习惯
- 万能get,call,callStatic
- &&和||
- 变量值交换
- trait拼接
- 多语支持