多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
[TOC] * * * * * ## 1 根据官网框架的默认安装分析 框架的安装步骤 见使用范例 [服务器与框架的安装](http://www.kancloud.cn/zmwtp/tp5/120287) ## 2 框架默认目录 > 独立模式 ~~~ tp5/ ;根目录 /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返回到客户端。 注册的路由规则和应用控制器的跳转使用思路见使用范例的 路由规则注册,应用控制器操作,模块开发部分