ThinkPHP3.1.3源码分析(一) 入口文件分析

前言:

有几个月时间没有更新CSDN博客,持之以恒的徽章也灭了,接下来这个几个月会

逐渐更新 主流PHP框架的入门,源码分析,框架对比。加油!

一、示例代码

//文件路径 ThinkPHP/ThinkPHP.php

// ThinkPHP 入口文件
// 记录开始运行时间
$GLOBALS['_beginTime'] = microtime(TRUE);
// 记录内存初始使用
define('MEMORY_LIMIT_ON',function_exists('memory_get_usage'));
if(MEMORY_LIMIT_ON) $GLOBALS['_startUseMems'] = memory_get_usage();
// 系统目录定义
defined('THINK_PATH') 	or define('THINK_PATH', dirname(__FILE__).'/');/*ThinkPHP 文件目录*/
defined('APP_PATH') 	or define('APP_PATH', dirname($_SERVER['SCRIPT_FILENAME']).'/');/*项目文件目录*/
defined('APP_DEBUG') 	or define('APP_DEBUG',false); // 是否调试模式
if(defined('ENGINE_NAME')) { /*是否启用云引擎 eg:BAE,SAE*/
    defined('ENGINE_PATH') or define('ENGINE_PATH',THINK_PATH.'Extend/Engine/');
	require ENGINE_PATH.strtolower(ENGINE_NAME).'.php';
}else{
    defined('RUNTIME_PATH') or define('RUNTIME_PATH',APP_PATH.'Runtime/');/*运行时文件目录*/

    /*运行时文件名(MODE_NAME 为ThinkPHP的运行模式扩展)
	eg: 简洁模式
		精简模式
		命令模式
		AMF模式 
		PHPRPC模式 
		REST模式
		自定义模式扩展
		详情亲看 ThinkPHP文档 模式扩展
    */
	$runtime = defined('MODE_NAME')?'~'.strtolower(MODE_NAME).'_runtime.php':'~runtime.php';
	defined('RUNTIME_FILE') or define('RUNTIME_FILE',RUNTIME_PATH.$runtime); /*运行时文件*/
	if(!APP_DEBUG && is_file(RUNTIME_FILE)) {
	    // 部署模式直接载入运行缓存
	    require RUNTIME_FILE;
	}else{
	    // 加载运行时文件
	    require THINK_PATH.'Common/runtime.php';
	}	
}

备注:每一行都有注释  // 开头的是 官方注释,/**/为我自己的注释

一、介绍:

在项目的index.php文件中,引用ThinkPHP.php文件,就正式启用的ThinkPHP框架


二、代码作用

1.定义了系统目录

2.判断系统是否启用 运行模式扩展 ,是否启用云引擎 

3.载入 运行时文件runtime.php 

runtime文件的加载规则

a.调试模式(APP_DEBUG=true)下,每次都会加载 Common/runtime.php文件

b.其他模式下会判断是否存在 runtime.php的缓存文件, 存在着直接加载缓存文件,

开启了运行模式扩展,缓存文件名为   模式扩展名_runtime.php

        未开启着为 ~runtime.php这个是最常见的,运行模式扩展基本不用


三、值得说的编程小细节:

1.  defined(***) or define(***) 语句

在平常的编程中,一般采用

if(!defined(***))
{
	define(***);
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值