[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返回到客户端。
注册的路由规则和应用控制器的跳转使用思路见使用范例的 路由规则注册,应用控制器操作,模块开发部分
- 更新记录
- 概述
- 文件索引
- 函数索引
- 章节格式
- 框架流程
- 前:章节说明
- 主:(index.php)入口
- 主:(start.php)框架引导
- 主:(App.php)应用启动
- 主:(App.php)应用调度
- C:(Controller.php)应用控制器
- M:(Model.php)数据模型
- V:(View.php)视图对象
- 附:(App.php)应用启动
- 附:(base.php)全局变量
- 附:(common.php)模式配置
- 附:(convention.php)全局配置
- 附:(Loader.php)自动加载器
- 附:(Build.php)自动生成
- 附:(Hook.php)监听回调
- 附:(Route.php)全局路由
- 附:(Response.php)数据输出
- 附:(Log.php)日志记录
- 附:(Exception.php)异常处理
- 框架工具
- 另:(helper.php)辅助函数
- 另:(Cache.php)数据缓存
- 另:(Cookie.php)cookie操作
- 另:(Console.php)控制台
- 另:(Debug.php)开发调试
- 另:(Error.php)错误处理
- 另:(Url.php)Url操作文件
- 另:(Loader.php)加载器实例化
- 另:(Input.php)数据输入
- 另:(Lang.php)语言包管理
- 另:(ORM.php)ORM基类
- 另:(Process.php)进程管理
- 另:(Session.php)session操作
- 另:(Template.php)模板解析
- 框架驱动
- D:(\config)配置解析
- D:(\controller)控制器扩展
- D:(\model)模型扩展
- D:(\db)数据库驱动
- D:(\view)模板解析
- D:(\template)模板标签库
- D:(\session)session驱动
- D:(\cache)缓存驱动
- D:(\console)控制台
- D:(\process)进程扩展
- T:(\traits)Trait目录
- D:(\exception)异常实现
- D:(\log)日志驱动
- 使用范例
- 服务器与框架的安装
- 控制器操作
- 数据模型操作
- 视图渲染控制
- MVC开发初探
- 模块开发
- 入口文件定义全局变量
- 运行模式开发
- 框架配置
- 自动生成应用
- 事件与插件注册
- 路由规则注册
- 输出控制
- 多种应用组织
- 综合应用
- tp框架整合后台auto架构快速开发
- 基础原理
- php默认全局变量
- php的魔术方法
- php命名空间
- php的自动加载
- php的composer
- php的反射
- php的trait机制
- php设计模式
- php的系统时区
- php的异常错误
- php的输出控制
- php的正则表达式
- php的闭包函数
- php的会话控制
- php的接口
- php的PDO
- php的字符串操作
- php的curl
- 框架心得
- 心:整体结构
- 心:配置详解
- 心:加载器详解
- 心:输入输出详解
- 心:url路由详解
- 心:模板详解
- 心:模型详解
- 心:日志详解
- 心:缓存详解
- 心:控制台详解
- 框架更新
- 4.20(验证类,助手函数)
- 4.27(新模型Model功能)
- 5.4(新数据库驱动)
- 7.28(自动加载)