Thinkphp诞生
ThinkPHP 由国人开发,是一个免费开源、面向对象的轻量级 PHP 开发框架。诞生于 2006 年初,国内使用最多。
Thinkphp 3.2版(小白入门经典版)
php版本
PHP5.3以上版本
目录结构
初始的目录结构
├─index.php 入口文件
├─README.md README文件
├─Application 应用目录
├─Public 资源文件目录
└─ThinkPHP 框架目录
框架目录ThinkPHP的结构
├─ThinkPHP 框架系统目录(可以部署在非web目录下面)
│ ├─Common 核心公共函数目录
│ ├─Conf 核心配置目录
│ ├─Lang 核心语言包目录
│ ├─Library 框架类库目录
│ │ ├─Think 核心Think类库包目录
│ │ ├─Behavior 行为类库目录
│ │ ├─Org Org类库包目录
│ │ ├─Vendor 第三方类库目录
│ │ ├─ ... 更多类库目录
│ ├─Mode 框架应用模式目录
│ ├─Tpl 系统模板目录
│ ├─LICENSE.txt 框架授权协议文件
│ ├─logo.png 框架LOGO文件
│ ├─README.txt 框架README文件
│ └─ThinkPHP.php 框架入口文件
手册链接:
Thinkphp5.1版
环境要求
PHP >= 5.6.0
PDO PHP Extension
MBstring PHP Extension
目录结构
├─application 应用目录
│ ├─common 公共模块目录(可以更改)
│ ├─module_name 模块目录
│ │ ├─common.php 模块函数文件
│ │ ├─controller 控制器目录
│ │ ├─model 模型目录
│ │ ├─view 视图目录
│ │ ├─config 配置目录
│ │ └─ ... 更多类库目录
│ │
│ ├─command.php 命令行定义文件
│ ├─common.php 公共函数文件
│ └─tags.php 应用行为扩展定义文件
│
├─config 应用配置目录
│ ├─module_name 模块配置目录
│ │ ├─database.php 数据库配置
│ │ ├─cache 缓存配置
│ │ └─ ...
│ │
│ ├─app.php 应用配置
│ ├─cache.php 缓存配置
│ ├─cookie.php Cookie配置
│ ├─database.php 数据库配置
│ ├─log.php 日志配置
│ ├─session.php Session配置
│ ├─template.php 模板引擎配置
│ └─trace.php Trace配置
│
├─route 路由定义目录
│ ├─route.php 路由定义
│ └─... 更多
│
├─public WEB目录(对外访问目录)
│ ├─index.php 入口文件
│ ├─router.php 快速测试文件
│ └─.htaccess 用于apache的重写
│
├─thinkphp 框架系统目录
│ ├─lang 语言文件目录
│ ├─library 框架类库目录
│ │ ├─think Think类库包目录
│ │ └─traits 系统Trait目录
│ │
│ ├─tpl 系统模板目录
│ ├─base.php 基础定义文件
│ ├─convention.php 框架惯例配置文件
│ ├─helper.php 助手函数文件
│ └─logo.png 框架LOGO文件
│
├─extend 扩展类库目录
├─runtime 应用的运行时目录(可写,可定制)
├─vendor 第三方类库目录(Composer依赖库)
├─build.php 自动生成定义文件(参考)
├─composer.json composer 定义文件
├─LICENSE.txt 授权说明文件
├─README.md README 文件
├─think 命令行入口文件
手册链接:
TP5与TP3.2的区别
1.支持 Composer,PHPunit(中大型项目必备的依赖管理和测试框架)
2.更加严谨了,异常严谨的错误检测和安全机制。我发现html页面中如果有不存在的url,就会马上报错模板不存在。
3.大量参考了 Laravel 风格,还保证了以往 ThinkPHP 简单易学(优雅并且易学)
4.惰性加载,及路由、配置和自动加载的缓存机制,模型类并不一定要访问数据库,而且在5.0的架构设计中,只有进行实际的数据库查询操作的时候,才会进行数据库的连接,是真正的惰性连接。
5.API进行了优化,不依赖原来的API模式扩展。控制器输出采用Response类统一处理,而不是直接在控制器中输出。
符合PSR-4的自动加载规范
6.以前单字母全局函数改成了别名函数(M,D,S,C等,除了易学好用还不会污染全局)
7.模板的输出,url的访问以及数据的增删改查都有了小小的变动。
Thinkphp 6版
环境要求
PHP >= 7.2.5
6.0版本开始,必须通过Composer方式安装和更新
目录结构
├─app 应用目录
│ ├─controller 控制器目录
│ ├─model 模型目录
│ ├─ ... 更多类库目录
│ │
│ ├─common.php 公共函数文件
│ └─event.php 事件定义文件
│
├─config 配置目录
│ ├─app.php 应用配置
│ ├─cache.php 缓存配置
│ ├─console.php 控制台配置
│ ├─cookie.php Cookie配置
│ ├─database.php 数据库配置
│ ├─filesystem.php 文件磁盘配置
│ ├─lang.php 多语言配置
│ ├─log.php 日志配置
│ ├─middleware.php 中间件配置
│ ├─route.php URL和路由配置
│ ├─session.php Session配置
│ ├─trace.php Trace配置
│ └─view.php 视图配置
│
├─view 视图目录
├─route 路由定义目录
│ ├─route.php 路由定义文件
│ └─ ...
│
├─public WEB目录(对外访问目录)
│ ├─index.php 入口文件
│ ├─router.php 快速测试文件
│ └─.htaccess 用于apache的重写
│
├─extend 扩展类库目录
├─runtime 应用的运行时目录(可写,可定制)
├─vendor Composer类库目录
├─.example.env 环境变量示例文件
├─composer.json composer 定义文件
├─LICENSE.txt 授权说明文件
├─README.md README 文件
├─think 命令行入口文件
手册链接:
TP5和TP6版本之间的差异:
ThinkPHP6.0运行环境要求PHP7.1+,不支持5.1的无缝升级
1 目录结构的异同 tp5核心框架是项目根目录thinkphp下 , tp6是vendor的topthink
2 安装方式不同,tp6仅能通过composer方式安装
3 类自动加载方式不同 tp6使用composer方式实现类自动加载, tp5 composer+自己实现了一套
4 tp6使用了php7严格模式
5 TP6组件的独立 ORM 模板引擎
6 TP6中间件改进 TP6开始使用了管道模式来实现中间件,比起之前版本的实现更加简洁,有序
7 TP6引入Filesystem