Thinkphp框架的源码通读2——核心Think类从开始到加载方法
来源:互联网 发布:紫青双剑仙羽进阶数据 编辑:程序博客网 时间:2024/06/09 17:51
从核心Think类Think.class.php文件中的start方法开始
设定了自动加载类文件的__autoload方法
先用此方式加载storage类——文件存储方式
Storage::connect(STORAGE_TYPE);Storage类文件与核心Think类在同目录下
storage类的connect方法用于实例化其storage类的子类——File.class.php,由此可以Storage::方法名的方式来使用File类中的方法,参见前一篇父类调用子类方法的博文
如果debug没开且存在Application/Runtime/Common~runtim.php
就加载此文件。目前不知道此文件的来历
$runtimefile = RUNTIME_PATH.APP_MODE.'~runtime.php'; //Application/Runtime/Common~runtim.php if(!APP_DEBUG && Storage::has($runtimefile)){ Storage::load($runtimefile); }else{
否则引入一系列的文件:
先引入这些文件的文件名:在./ThinkPHP/Mode/Common.php中
$mode = include is_file(CONF_PATH.'core.php')?CONF_PATH.'core.php':MODE_PATH.APP_MODE.'.php'; // .../ThinkPHP/Mode/Common.php先引入函数和类文件,
Common.php的Core是这样的:
'core' => array( THINK_PATH.'Common/functions.php',//./ThinkPHP/Common/functions.php COMMON_PATH.'Common/function.php',//./Application/Common/function.php CORE_PATH . 'Hook'.EXT,//./ThinkPHP/Library/Think/Hook.class.php CORE_PATH . 'App'.EXT,//./ThinkPHP/Library/Think/App.class.php CORE_PATH . 'Dispatcher'.EXT,//./ThinkPHP/Library/Think/Dispatcher.class.php //CORE_PATH . 'Log'.EXT, CORE_PATH . 'Route'.EXT,//./ThinkPHP/Library/Think/Route.class.php CORE_PATH . 'Controller'.EXT,//./ThinkPHP/Library/Think/Controller.class.php CORE_PATH . 'View'.EXT,//./ThinkPHP/Library/Think/View.class.php BEHAVIOR_PATH . 'BuildLiteBehavior'.EXT,//./ThinkPHP/Library/Behavior/BuildLiteBehavior.class.php BEHAVIOR_PATH . 'ParseTemplateBehavior'.EXT,//./ThinkPHP/Library/Behavior/ParseTemplateBehavior.class.php BEHAVIOR_PATH . 'ContentReplaceBehavior'.EXT,//./ThinkPHP/Library/Behavior/ContentReplaceBehavior.class.php ),引入方法则是这样的:
foreach ($mode['core'] as $file){ if(is_file($file)) { include $file; if(!APP_DEBUG) $content .= compile($file);//这里的compile方法在core[0]中,即./ThinkPHP/Common/functions.php中}}第一个引入的是./ThinkPHP/Common/functions.php
按着顺序来的话,下一篇先看/ThinkPHP/Common/functions.php的内容。
0 0
- Thinkphp框架的源码通读2——核心Think类从开始到加载方法
- Thinkphp框架的源码通读1
- thinkphp核心源码注释|Think.class.php
- ThinkPHP框架----控制器调用模型里的方法,一直报错——Think\Model:..方法不存在!
- ABP 框架从源码学习——abp框架启动核心类AbpBootstrapper(2)
- [李景山php]thinkphp核心源码注释|Think.class.php
- ThinkPHP核心类源码剖析
- Yii2框架源码追踪阅读(一)--从入口脚本index.php到类加载器的初始化
- thinkphp源码解析 (Version 3.1) -2 /Lib/Core/Think.class
- thinkPHP 框架 引导类Think.class.php 分析(一)
- Thinkphp框架中将数据输出到Execl封装的方法
- 记录WebView从开始加载到渲染结束的时间
- Java入门到精通——框架篇之Spring源码分析Spring两大核心类
- 通读AFN-从创建manager到数据解析完毕
- Android从源码框架思路开始
- Thinkphp框架的_initialize()方法
- 从校园到工作的路(六)——关于阅读源码的方法
- ThinkPHP框架中解决无法加载控制器的问题—原因之一
- Flask 学习笔记1 --Qickstart
- 【2042】模拟开关
- C#控制台 static与const不能同时修饰一个字段
- pycharm导入第三方依赖
- 面向对象七大设计原则
- Thinkphp框架的源码通读2——核心Think类从开始到加载方法
- 第六届蓝桥杯B组---7.牌型总数
- CODEFORCES 454C Little Pony and Expected Maximum
- HDU-1806 Frequent values(RMQ)
- "享元模式"-之Java,Android面试必问设计模式(9/9)
- Android 属性动画,补间动画,xml资源动画详解
- 查询出来的内容只显示一部分,后边用的内容进行替换
- C#控制台 只读,只写,读写,读写时过滤的属性
- java变量作用域和堆栈