ThinkPHP 6入门到精通全教程,从环境搭建到项目实战
作为国内占有率最高的PHP开发框架之一,ThinkPHP(开发者常简称tps://www.bnqdsrmyy.com/tags-277.html" class="superseo">TP)凭借轻量化的设计、保姆级的中文文档、活跃的社区生态,成为中小企业Web建站、后台管理系统、跨端API接口开发的首选框架,也是绝大多数PHP新手的入门第一框架,它完美适配国内开发者的编码习惯,社区沉淀了海量的教程、插件和问题解决方案,遇到开发难题时很容易找到参考思路,本教程将从零基础出发,带你系统掌握ThinkPHP 6的核心开发技能,从环境搭建到完整的实战项目落地,帮你快速从TP小白成长为能独立开发项目的开发者。
前期准备:环境搭建与项目初始化
必备工具安装
首先需要准备三个基础开发工具:PHP运行环境、Composer依赖管理工具、MySQL数据库。
- PHP环境:推荐使用PHP7.4及以上版本(TP6最低支持PHP7.2),新手建议直接使用集成包简化配置:
- Windows/Mac用户可以下载XAMPP或WAMP,一键安装即可自带Apache、MySQL和PHP,下载地址可从官方开源站点获取;
- Linux用户可以手动编译安装,或使用宝塔面板快速搭建环境。
安装完成后可以通过
php -v命令验证PHP版本是否符合要求。
- Composer安装:Composer是PHP的包管理工具,TP6的安装、依赖更新都需要用到它,且强烈建议配置国内镜像加速下载:
- Windows用户直接下载Composer-Setup.exe,按照向导选择本地PHP安装路径完成安装,安装后执行
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/切换阿里云镜像; - Linux用户执行以下命令快速安装:
curl -sS https://getcomposer.org/installer | php mv composer.phar /usr/local/bin/composer composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
安装完成后执行
composer -V,如果能看到Composer版本号,说明安装成功。
- Windows用户直接下载Composer-Setup.exe,按照向导选择本地PHP安装路径完成安装,安装后执行
- MySQL数据库:确保MySQL服务正常启动,默认端口为3306,后续需要创建专属的TP项目数据库。
初始化TP6项目
打开命令行终端,进入你的网站根目录,执行Composer创建项目的命令:
composer create-project topthink/think tp6demo
小提示:如果Composer下载速度过慢,可以临时使用阿里云镜像加速:
composer create-project topthink/think tp6demo --repo=https://mirrors.aliyun.com/composer/
等待依赖安装完成后,进入项目目录并启动TP内置的开发服务器:
cd tp6demo php think run
默认启动端口为8000,如果端口被占用,可以指定自定义端口:php think run -p 8080,在浏览器访问http://localhost:8000,如果看到TP6的欢迎页面,说明项目初始化成功。
基础目录结构解析
TP6的项目目录设计简洁清晰,新手需要先了解核心目录的作用:
| 目录/文件 | 说明 |
| ---- | ---- |
| public/ | 项目唯一入口目录,所有请求都通过这里的index.php进入,静态资源(CSS、JS、图片)建议放在该目录下的static文件夹中,生产环境部署时需要将根目录指向该文件夹 |
| app/ | 应用业务核心目录,控制器、模型、视图、中间件等业务代码都放在这里 |
| config/ | 全局配置目录,包含数据库、路由、缓存、应用基础配置等文件 |
| runtime/ | 缓存、日志、会话等临时文件目录,开发阶段可以随时清空该目录重置缓存,生产环境需要赋予读写权限 |
| extend/ | 第三方扩展类库目录,用于存放自定义的公共工具类、未通过Composer安装的第三方包 |
| vendor/ | Composer安装的依赖包目录,请勿手动修改该目录下的文件 |
| route/ | 配置文件路由的专属目录,TP6支持注解路由和配置路由两种模式 |
核心开发基础:路由、控制器与模型
路由配置:定义访问规则
TP6支持两种主流路由模式:注解路由和配置文件路由,新手可以先从简单的注解路由入手。
注意:TP6默认关闭注解路由,需要先开启配置:在
config/route.php中设置'annotation' => true,同时需要安装注解路由扩展:composer require topthink/think-annotation
-
在
app/controller/目录下新建User.php控制器文件,写入基础代码:<?php namespace app\controller; use think\Controller; use think\annotation\route\Get; use think\annotation\route\Post; class User extends Controller { // 基础GET路由 #[Get('/user/index')] public function index() { return "用户列表页面"; } // 动态路由,接收id参数 #[Get('/user/detail/:id')] public function detail($id) { return "用户ID:" . $id; } } -
重启开发服务器后,访问
http://localhost:8000/user/index就能看到返回的文本内容,如果需要配置POST路由,可以替换为#[Post('/user/add')],支持多种HTTP请求方式和复杂路由规则。
控制器:处理业务逻辑
控制器是接收用户请求、处理业务逻辑并返回结果的核心层,除了简单的文本返回,我们还可以渲染视图页面或者返回JSON数据。
修改User.php控制器,增加视图渲染和JSON返回的示例:
use think\facade\View;
// 渲染用户列表视图
#[Get('/user/list')]
public function list()
{
// 模拟从数据库查询用户数据
$userList = [
['id' => 1, 'name' => '张三', 'age' => 25],
['id' => 2, 'name' => '李四', 'age' => 30]
];
// 向视图传递数据
$this->assign('userList', $userList);
// 渲染app/view/user/list.html视图文件
return $this->fetch();
}
// 返回JSON格式接口数据
#[Get('/user/info/:id') 