ThinkPHP(以下简称TP)是国内普及率最高的开源PHP Web开发框架之一,自2006年发布首个版本以来,凭借极简优雅的语法风格、详尽完善的官方文档、成熟丰富的生态,以及完全贴合国内开发者使用习惯的设计思路,迅速成为中小企业、个人开发者快速搭建Web应用的首选开发工具,无论是开发博客商城、后台管理系统还是企业官网,TP都能提供标准化的开发流程,帮开发者避开大量底层重复工作,将精力聚焦在核心业务逻辑的实现上,本文将从零基础入门视角出发,系统讲解TP6框架的核心知识点与实战落地全流程,帮助读者快速上手并掌握TP开发技能。
环境准备与TP框架安装
1 本地开发环境搭建
开发TP项目前,需要先搭建PHP运行环境,对于新手来说,推荐使用集成化环境包快速搭建,比如XAMPP、WAMP或Laragon,其中XAMPP是最通用的选择:
小贴士:TP6及以上版本要求PHP版本不低于7.2.5,因此下载XAMPP时建议选择7.4或8.0以上的版本,避免出现兼容性问题。
- 访问XAMPP官方网站(https://www.apachefriends.org/zh_cn/index.html),根据操作系统下载对应版本的安装包;
- 安装时勾选Apache、MySQL、PHP模块,完成安装后启动Apache和MySQL服务,在浏览器访问
http://localhost即可看到XAMPP欢迎页面,证明环境搭建成功。 - 安装Composer:TP框架从6.0版本开始全面支持Composer依赖管理,这是PHP生态中最主流的包管理工具。
- Windows用户可以访问Composer中文网(https://www.phpcomposer.com/)下载安装包,安装时自动识别已安装的PHP路径即可;
- Mac用户也可以通过Homebrew快速安装:
brew install composer,无需手动指定PHP路径。 - 安装完成后在终端输入
composer -V,如果能输出Composer版本号则安装成功,国内使用Composer时建议配置阿里云镜像,加速依赖包下载:composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
2 TP框架的创建与初始化
TP官方提供了两种项目创建方式,适配不同使用场景:
Composer快速创建(推荐新手使用)
- 打开终端,进入XAMPP的htdocs目录(Windows路径一般为
C:\xampp\htdocs,Mac为/Applications/XAMPP/htdocs),执行以下命令创建TP6项目:composer create-project topthink/think tp6-demo
等待依赖包安装完成后,会在当前目录生成名为
tp6-demo的TP项目文件夹。 - 进入项目目录,启动内置开发服务器:
cd tp6-demo php think run
终端会输出服务启动地址,默认是
http://127.0.0.1:8000,如果8000端口被占用,可以通过php think run -p 8080更换端口,在浏览器访问该地址,如果看到TP官方欢迎页面,说明项目初始化成功。
手动下载压缩包(适配网络不佳用户)
如果无法正常使用Composer,可以直接访问ThinkPHP官网https://www.thinkphp.cn/下载最新稳定版压缩包,解压到htdocs目录后重命名为tp6-demo即可完成搭建。
3 本地项目访问配置
如果希望通过虚拟域名或子目录访问项目,可以配置Apache或Nginx的虚拟主机,以Apache为例:
- 打开
httpd.conf文件,开启虚拟主机配置(取消#Include conf/extra/httpd-vhosts.conf前的注释); - 在
extra/httpd-vhosts.conf中添加如下配置:<VirtualHost *:80> ServerName tp6.test DocumentRoot "C:\xampp\htdocs\tp6-demo\public" <Directory "C:\xampp\htdocs\tp6-demo\public"> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> </VirtualHost> - 最后修改本地hosts文件:
- Windows路径:
C:\Windows\System32\drivers\etc\hosts - Mac路径:
/etc/hosts添加一行0.0.1 tp6.test(原文此处原笔误为0.1,已修正),重启Apache后即可通过http://tp6.test访问项目。
- Windows路径:
小贴士:如果不想配置虚拟主机,也可以直接通过子目录访问,比如直接访问
http://localhost/tp6-demo/public即可,不过这种方式不如虚拟域名优雅规范。
TP项目目录结构详解
TP6的项目目录结构经过优化,更加贴合现代化PHP开发规范,核心目录功能如下:
| 目录/文件 | 作用说明 |
|---|---|
app/ |
业务代码核心目录,每个模块的控制器、模型、视图都存放在此,默认自带index默认模块 |
config/ |
全局配置目录,包含数据库、路由、日志、缓存等所有框架配置文件 |
public/ |
项目入口目录,只有此目录下的文件可以被外部直接访问,包含index.php入口文件和静态资源文件夹 |
route/ |
路由定义目录,所有路由规则都可以在这里统一管理 |
vendor/ |
Composer安装的第三方依赖包目录,无需手动修改 |
runtime/ |
框架运行时缓存目录,包含日志、模板缓存、配置缓存等,需要设置写入权限 |
.env |
环境变量配置文件,用于区分开发、测试、生产环境的配置参数,推荐优先使用该文件管理配置 |
新手提示:
app/目录是开发者最常接触的部分,默认自带index模块,包含controller/(控制器)、model/(模型)、view/(视图模板)三个子目录,后续开发的业务模块也可以按照此结构扩展,比如新建admin模块用于搭建后台管理系统。runtime目录需要设置写入权限:Linux/Mac系统下执行chmod -R 775 runtime,Windows系统则右键文件夹→属性→安全,给当前用户开放完全控制权限,否则框架无法正常生成缓存和日志文件。
路由系统入门与进阶
路由是TP框架的核心功能之一,负责将用户的HTTP请求映射到对应的控制器方法中,TP6支持多种路由定义方式,兼顾灵活性和规范性。
1 基础路由配置
TP6默认关闭强制路由模式,即可以通过http://域名/控制器/操作方法直接访问,例如http://tp6.test/index/hello会直接访问app/index/controller/Index.php中的hello方法,如果需要统一管理路由规则,可以开启强制路由模式:
- 在
config/route.php中修改配置:'app_route_multi' => false, // 关闭多请求路由 'url_html_suffix' => '', // 取消URL后缀 'app_route_require_domain' => false,
- 然后在
route/app.php中定义路由规则:use think\facade\Route; // 定义GET请求路由,访问/hello时执行index控制器的hello方法 Route::get('hello', 'index/hello'); // 动态路由,传递id参数 Route::get('user/:id', 'index/user');此时访问
http://tp6.test/hello即可触发对应的控制器方法,相比直接通过控制器路径访问更规范,也更容易实现URL美化、权限拦截等扩展功能。
2 进阶路由技巧
TP6的路由系统支持丰富的扩展玩法,可以大幅提升开发效率:
- 路由分组:可以将一类路由放在同一个分组中,统一设置前缀、中间件等,比如后台管理路由:
use think\facade\Route; // 后台路由分组,统一前缀/admin,并且绑定auth中间件做登录校验 Route::group('admin', function () { Route::get('dashboard', 'admin/Index/dashboard'); Route::get('user/list', 'admin/User/lists'); })->middleware('auth'); - 资源路由:针对RESTful风格的API开发
