ThinkPHP 快速入门(基于PHP 8+)
ThinkPHP(简称TP)是国内最流行的PHP框架之一,最新稳定版本已支持PHP 8+,其设计理念是“简单、快速、灵活”,非常适合快速开发Web应用。对于有PHP基础的开发者,入门ThinkPHP可以从其核心框架逻辑和基础使用流程入手。
一、ThinkPHP的核心框架逻辑(MVC架构)
ThinkPHP遵循MVC设计模式,核心逻辑围绕“请求-处理-响应”流程展开,结构清晰:
- M(Model,模型):负责数据处理(数据库交互、数据验证等),与数据库直接交互。
- V(View,视图):负责数据展示(HTML页面、模板渲染),仅处理显示逻辑。
- C(Controller,控制器):负责接收请求、调用模型处理数据、传递数据给视图,是业务逻辑的核心调度者。
完整请求流程
- 用户发送请求(如访问
http://域名/index/index/index); - 框架通过路由系统解析请求,确定对应的控制器和方法;
- 控制器调用模型处理数据(如查询数据库);
- 控制器将处理后的数据传递给视图;
- 视图渲染模板并生成响应,返回给用户。
二、快速入门:从安装到第一个页面
1. 环境准备
- PHP版本:≥8.0(推荐8.1+),需开启PDO、mbstring等扩展;
- 安装Composer(PHP包管理工具,用于安装框架)。
2. 安装ThinkPHP
通过Composer创建项目(以最新稳定版6.x为例,支持PHP 8):
composer create-project topthink/think tp-demo
安装完成后,项目目录结构如下(核心目录):
tp-demo/
├─ app/ # 应用目录(控制器、模型、视图等)
│ ├─ controller/ # 控制器目录
│ ├─ model/ # 模型目录
│ ├─ view/ # 视图目录
│ └─ ...
├─ config/ # 配置文件目录
├─ public/ # 入口文件目录(对外访问根目录)
│ └─ index.php # 应用入口文件
├─ route/ # 路由配置目录
└─ vendor/ # 第三方依赖(含ThinkPHP核心)
3. 启动应用
- 本地开发可使用内置服务器:
cd tp-demo php think run - 访问
http://127.0.0.1:8000,看到欢迎页即表示安装成功。
4. 第一个控制器与页面
步骤1:创建控制器
在 app/controller 目录下新建 Hello.php:
<?php
namespace app\controller; // 命名空间(对应目录结构)
class Hello
{
// 定义一个index方法,对应访问路径:http://域名/hello/index
public function index()
{
// 返回字符串
return 'Hello ThinkPHP!';
}
// 带参数的方法,访问路径:http://域名/hello/user/张三
public function user($name = 'Guest')
{
return "Hello, {$name}!";
}
}
步骤2:访问控制器
- 访问
http://127.0.0.1:8000/hello(默认调用index方法),输出Hello ThinkPHP!; - 访问
http://127.0.0.1:8000/hello/user/张三,输出Hello, 张三!。
5. 视图渲染(V层)
控制器可以调用视图模板,实现数据与页面分离。
步骤1:创建视图文件
在 app/view 目录下新建 hello 文件夹(与控制器名对应),再创建 info.html:
<!-- app/view/hello/info.html -->
<!DOCTYPE html>
<html>
<head>
<title>用户信息</title>
</head>
<body>
<h1>欢迎,{$name}!</h1>
<p>年龄:{$age}</p>
</body>
</html>
步骤2:控制器调用视图
修改 Hello.php,添加 info 方法:
use think\facade\View; // 引入视图类
public function info()
{
$data = [
'name' => 'ThinkPHP',
'age' => 15 // 框架诞生于2006年
];
// 传递数据到视图,并渲染info.html
return View::assign($data)->fetch('info');
}
访问
http://127.0.0.1:8000/hello/info,即可看到渲染后的页面。
6. 模型操作数据库(M层)
ThinkPHP的模型简化了数据库操作,无需手写SQL。
步骤1:配置数据库
修改 config/database.php,填写数据库信息:
return [
'type' => 'mysql',
'hostname' => '127.0.0.1',
'database' => 'test', // 你的数据库名
'username' => 'root', // 用户名
'password' => '123456',// 密码
'charset' => 'utf8mb4',
];
步骤2:创建模型
在 app/model 目录下新建 User.php(对应数据库表 user):
<?php
namespace app\model;
use think\Model;
class User extends Model
{
// 模型自动对应表名(默认小写复数,这里对应user表)
}
步骤3:控制器中调用模型
在 Hello.php 中添加方法,查询用户数据:
use app\model\User; // 引入User模型
public function users()
{
// 查询所有用户(等效于SELECT * FROM user)
$users = User::select();
// 传递数据到视图
return View::assign('users', $users)->fetch('users');
}
步骤4:创建视图展示数据
新建 app/view/hello/users.html:
<ul>
{foreach $users as $user}
<li>{$user.id}:{$user.name}</li>
{/foreach}
</ul>
访问
http://127.0.0.1:8000/hello/users,即可显示数据库中的用户列表。
三、核心概念速览
-
路由:默认通过“控制器/方法/参数”访问,可在
route/app.php自定义路由,例如:// 访问http://域名/hi 对应 Hello控制器的index方法 Route::get('hi', 'hello/index'); -
中间件:处理请求前后的逻辑(如登录验证),定义后在路由或控制器中引用。
-
配置:
config目录下的文件可配置数据库、缓存、日志等,支持环境变量区分配置。 -
助手函数:框架提供大量便捷函数,如
db()(快速操作数据库)、view()(快速渲染视图)、input()(获取请求参数)等。
四、学习资源
- 官方文档:https://www.thinkphp.cn/doc(最权威,分版本说明)
- ThinkPHP8 完全开发手册
- 核心思想:理解MVC分工,熟悉“请求-控制器-模型-视图”的流程,多动手写简单案例(如增删改查)。
通过以上步骤,你可以快速搭建并运行一个基础的ThinkPHP应用,后续可逐步深入中间件、缓存、权限管理等高级功能。
赞赏
微信赞赏
支付宝赞赏