p5/ ;根目录
/application ;应用目录
/index ;应用index模块目录
command.php ;命令行命令配置目录
config.php ;应用配置文件
databse.php ;应用数据库配置文件
route.php ;应用路由配置文件
/public ;入口目录
/static ;静态资源目录
.htacess ;apache服务器配置
index.php ;默认入口文件
robots.txt ;爬虫协议文件
router.php ;php命令行服务器入口文件
/thinkphp ;框架核心目录
/extend ;框架扩展目录
/lang ;框架语言目录
/library ;框架核心目录
/mode ;框架模式目录
/tests ;框架测试目录
/tpl ;框架模板目录
/vendor ;第三方目录
base.php ;全局常量文件
convention.php ;全局配置文件
helper.php ;辅助函数文件
start.php ;框架引导入口
think.php ;框架引导文件
/vendor ;composer安装目录
build.php ;默认自动生成配置文件
composer.json ;composer安装配置文件
console ;控制台入口文件
composer包模式
tp5/ ;根目录
/application ;应用目录
/index ;应用index模块目录
command.php ;命令行命令配置目录
config.php ;应用配置文件
databse.php ;应用数据库配置文件
route.php ;应用路由配置文件
/public ;入口目录
/static ;静态资源目录
.htacess ;apache服务器配置
index.php ;默认入口文件
robots.txt ;爬虫协议文件
router.php ;php命令行服务器入口文件
/vendor ;composer安装目录
build.php ;默认自动生成配置文件
composer.json ;composer安装配置文件
console ;控制台入口文件
/vendor/topthink/framework ;框架核心目录
/extend ;框架扩展目录
/lang ;框架语言目录
/library ;框架核心目录
/mode ;框架模式目录
/tests ;框架测试目录
/tpl ;框架模板目录
/vendor ;第三方目录
base.php ;全局常量文件
convention.php ;全局配置文件
helper.php ;辅助函数文件
start.php ;框架引导入口
think.php ;框架引导文件
3 主体流程
独立模式
1 /public/index.php ;框架入口文件
该文件的系统用途:
定义应用路径
APP_PATH /application
加载框架启动文件
/thinkphp/start.php
该文件的开发用途:
这里是框架的入口。
可以用来自定义全局变量。
使用思路见 使用范例的 入口文件定义全局变量
2 /thinkphp/start.php ;框架引导入口
该文件的系统用途:
加载全局变量
/thinkphp/base.php
加载框架加载器
/thinkphp/library/think/Loader.php
注册自动加载器
Loader::register()
加载模式定义文件
/thinkphp/mode/common.php
加载模式命名空间
$mode['namespace']
加载模式别名定义
$mode['alias']
注册错误和异常处理
Error::register()
加载模式配置文件
$mode['config']
加载模式行为定义
$mode['tags']
应用自动生成
/application/build.php
应用启动
/thinkphp/library/think/App.php
该文件的开发用途:
自定义的模式文件在这里加载,并初始化模式运行环境
使用思路见使用范例的 运行模式开发
3 /thinkphp/library/think/App.php ;应用启动文件
该文件的系统用途:
加载composer加载器文件autoload_real.php
注册composer自动加载器
上面第一步过的autoload_real.php文件中
加载composer预加载文件
/topthink/framework/start.php
该文件的开发用途:
这里是应用启动核心,进行url的路由分析和应用控制的调度。
系统在这里从框架跳转到业务逻辑的应用部分运行,然后获取运行结果,使用Response返回到客户端。
注册的路由规则和应用控制器的跳转使用思路见使用范例的 路由规则注册,应用控制器操作,模块开发部分
composer包模式
1 /public/index.php ;框架入口文件
该文件的系统用途:
定义应用路径
APP_PATH /application
开启调试模式
define('APP_DEBUG', true);
加载框架引导文件
/vendor/autoload.php
或者
/thinkphp/start.php
该文件的开发用途:
这里是框架的入口。
可以用来自定义全局变量。
使用思路见 使用范例的 入口文件定义全局变量
2 /vendor/topthink/framework/start.php ;框架引导入口
该文件的系统用途:
检查全局常量THINK_AUTOLOAD
加载框架引导文件
/vendor/topthink/framework/think.php
该文件的开发用途:
3 /vendor/topthink/framework/think.php ;框架引导文件
该文件的系统用途:
加载全局常量
/thinkphp/base.php
加载框架加载器
/thinkphp/library/think/Loader.php
加载应用环境变量配置文件
/application/env.php
自动识别调试模式
define('APP_DEBUG', $debug);
加载模式定义文件
/thinkphp/mode/common.php
加载模式命名空间
$mode['namespace']
注册自动加载器
Loader::register()
加载模式别名定义
$mode['alias']
注册错误和异常处理
Error::register()
加载模式配置文件
$mode['config']
加载模式行为定义
$mode['tags']
应用启动
/thinkphp/library/think/App.php
该文件的开发用途:
自定义的模式文件在这里加载,并初始化模式运行环境
使用思路见使用范例的 运行模式开发
4 /thinkphp/library/think/App.php ;应用启动文件
该文件的系统用途:
初始化应用模块
self::initModule()
获取全局配置
$config = Config::get()
注册根命名空间
$config['root_namespace']
加载额外文件
$config['extra_file_list']
设置系统时区
date_default_timezone_set()
监听应用初始化回调
Hook::listen('app_init')
语言包配置
$config['lang_switch_on']
路由分析
self::route($config)
路由日志记录
Log:record([ROUTE]
监听应用启动回调
Hook::listen('app_begin')
应用调度与数据输出
根据self::$dispatch['type']
使用不同的调度方法,调用对应业务逻辑
其中的module调度以框架模块/控制器/操作的方法调度。
该文件的开发用途:
这里是应用启动核心,进行url的路由分析和应用控制的调度。
系统在这里从框架跳转到业务逻辑的应用部分运行,然后获取运行结果,使用Response返回到客户端。
注册的路由规则和应用控制器的跳转使用思路见使用范例的 路由规则注册,应用控制器操作,模块开发部分