框架入口文件
这个文件在哪里?位于/ThinkPHP/目录下。
这个文件有什么作用?
- 定义常量
- 加载核心 Think类
- 应用初始化
请看下文分解。
定义常量
_beginTime
记录开始运行时间
$GLOBALS['_beginTime'] = microtime(TRUE);
这里出现了一个数组$GLOBALS[]。
PHP手册中指出:$GLOBALS — 引用全局作用域中可用的全部变量。
我们可以输出这个变量看看:
print_f($GLOBALS);
可以看到类似下面的结果:
Array ( [_GET] => Array ( )
[_POST] => Array ( )
[_COOKIE] => Array ( )
[_FILES] => Array ( )
[GLOBALS]...
);
我们可以利用它来定义全局变量。
在上面代码中定义了一个_beginTime变量,用以记录当前时间,以后后面来统计应用执行时间。
内存初始使用量
// 记录内存初始使用
define('MEMORY_LIMIT_ON',
function_exists('memory_get_usage'));
if(MEMORY_LIMIT_ON)
$GLOBALS['_startUseMems'] = memory_get_usage();
获取内存量以便程序后续分析。
其他常量
还有许多常量如下表:
| 变量名 | 描述 |
|---|---|
| THINK_VERSION | 定义 ThinkPHP 的版本 |
| URL_COMMON | 定义路由为普通模式 |
| URL_PATHINFO | 定义路由为 PATHINFO 模式 |
| URL_REWRITE | 定义路由为 REWRITE 模式 |
| URL_COMPAT | 定义路由为 兼容模式 |
| EXT | 定义类的后缀 |
| LANG_PATH | |
| THINK_PATH | 定义 Think 的核心库的目录 |
| APP_PATH | 定义用户程序的目录 |
| APP_STATUS | 定义应用的状态 |
| APP_DEBUG | 定义是否处于开发模式 |
| RUNTIME_PATH | 定义运行时目录 |
| LIB_PATH | 定义库的目录 |
| CORE_PATH | 定义核心库的目录 |
| BEHAVIOR_PATH | |
| MODE_PATH | |
| VENDOR_PATH | |
| COMMON_PATH | |
| CONF_PATH | 定义配置目录 |
| HTML_PATH | 定义HTML目录 |
| LOG_PATH | 定义日志目录 |
| TEMP_PATH | 定义临时目录 |
| DATA_PATH | 定义数据目录 |
| CACHE_PATH | 定义缓存的目录 |
| CONF_EXT | 定义配置文件的扩展名 |
| CONF_PARSE | |
| ADDON_PATH | |
| MAGIC_QUOTES_GPC | |
| IS_CGI | |
| IS_WIN | 定义是否处于 Windows 系统环境 |
| IS_CLI |
加载核心 Think 类
核心 Think 类在哪里?查看代码:
require CORE_PATH.'Think'.EXT;
CORE_PATH这个常量值为:/ThinkPHP/Library/Think/。
EXT这个常量值为:.class.php。
在这里,在这里看见你:/ThinkPHP/Library/Think/Think.class.php
应用初始化
应用初始化,这里调用了Think应到类的静态方法start。
Think\Think::start();
应用初始化做了哪些工作?请看下文。








网友评论