ThinkPHP 快速入门

  • Code
  • 191 clicked

ThinkPHP 快速入门(基于PHP 8+)

ThinkPHP(简称TP)是国内最流行的PHP框架之一,最新稳定版本已支持PHP 8+,其设计理念是“简单、快速、灵活”,非常适合快速开发Web应用。对于有PHP基础的开发者,入门ThinkPHP可以从其核心框架逻辑和基础使用流程入手。

一、ThinkPHP的核心框架逻辑(MVC架构)

ThinkPHP遵循MVC设计模式,核心逻辑围绕“请求-处理-响应”流程展开,结构清晰:

  • M(Model,模型):负责数据处理(数据库交互、数据验证等),与数据库直接交互。
  • V(View,视图):负责数据展示(HTML页面、模板渲染),仅处理显示逻辑。
  • C(Controller,控制器):负责接收请求、调用模型处理数据、传递数据给视图,是业务逻辑的核心调度者。

完整请求流程

  1. 用户发送请求(如访问 http://域名/index/index/index);
  2. 框架通过路由系统解析请求,确定对应的控制器和方法;
  3. 控制器调用模型处理数据(如查询数据库);
  4. 控制器将处理后的数据传递给视图;
  5. 视图渲染模板并生成响应,返回给用户。

二、快速入门:从安装到第一个页面

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,即可显示数据库中的用户列表。

三、核心概念速览

  1. 路由:默认通过“控制器/方法/参数”访问,可在 route/app.php 自定义路由,例如:

    // 访问http://域名/hi 对应 Hello控制器的index方法
    Route::get('hi', 'hello/index');
  2. 中间件:处理请求前后的逻辑(如登录验证),定义后在路由或控制器中引用。

  3. 配置config 目录下的文件可配置数据库、缓存、日志等,支持环境变量区分配置。

  4. 助手函数:框架提供大量便捷函数,如 db()(快速操作数据库)、view()(快速渲染视图)、input()(获取请求参数)等。

四、学习资源

通过以上步骤,你可以快速搭建并运行一个基础的ThinkPHP应用,后续可逐步深入中间件、缓存、权限管理等高级功能。

赞赏

微信赞赏支付宝赞赏

发表评论

邮箱地址不会被公开。 必填项已用*标注