ThinkPHP5 基础技术博客

ThinkPHP 是一款非常流行的 PHP 开发框架,ThinkPHP5 是其一个重要版本。它具有简洁的语法、丰富的功能和良好的扩展性,能够帮助开发者快速构建高效、稳定的 Web 应用程序。本文将详细介绍 ThinkPHP5 的基础知识,包括安装、目录结构、路由、控制器、模型、视图等方面,帮助读者快速入门。

目录#

  1. 安装
  2. 目录结构
  3. 路由
  4. 控制器
  5. 模型
  6. 视图
  7. 总结
  8. 参考

1. 安装#

1.1 环境要求#

  • PHP 版本 >=5.4.0
  • MySQL 数据库(可选,根据项目需求)

1.2 安装方式#

  • Composer 安装
    • 确保已安装 Composer。
    • 在命令行中进入项目目录,执行 composer create-project topthink/think=5.0.* 项目名称
  • 手动下载

2. 目录结构#

项目根目录
├── application           应用目录
│   ├── common            公共模块目录(可选)
│   ├── index             默认模块目录
│   │   ├── controller    控制器目录
│   │   ├── model         模型目录(可选)
│   │   ├── view          视图目录
│   │   └── ...           其他类库目录
│   └── ...               更多模块目录
├── public                入口目录(对外访问目录)
│   ├── index.php         入口文件
│   └── ...               其他静态资源文件
├── think                 命令行入口文件
├── vendor                Composer 依赖库目录
└── ...                   其他辅助文件

3. 路由#

3.1 基本路由定义#

application/route.php 文件中定义路由规则。

  • 简单路由
// 将域名/hello 映射到 index 模块的 index 控制器的 hello 方法
Route::rule('hello', 'index/index/hello');
  • 带参数路由
// 定义一个带参数的路由,例如域名/user/1 会传递参数 id=1 到控制器方法
Route::rule('user/:id', 'index/user/read');

3.2 路由变量规则#

可以使用正则表达式定义路由变量规则,例如:

Route::rule('user/:id', 'index/user/read')->pattern(['id' => '\d+']); // 限制 id 为数字

3.3 路由分组#

Route::group('admin', function () {
    Route::rule('index', 'admin/index/index');
    Route::rule('login', 'admin/index/login');
});

这样定义后,所有以 admin/ 开头的 URL 都会匹配到相应的路由规则。

4. 控制器#

4.1 控制器创建#

application/index/controller 目录下创建控制器文件,例如 Index.php

namespace app\index\controller;
 
class Index
{
    public function index()
    {
        return '这是首页';
    }
 
    public function hello()
    {
        return 'Hello, ThinkPHP5!';
    }
}

4.2 控制器方法参数#

  • 获取 GET 参数
public function user($id)
{
    // 可以直接通过方法参数获取 GET 参数(前提是路由定义正确传递了参数)
    return '用户 ID:'. $id;
}
  • 获取 POST 参数
use think\Request;
 
public function addUser()
{
    $data = Request::instance()->post();
    // 处理 $data 数据
    return '添加用户成功';
}

5. 模型#

5.1 模型创建#

application/index/model 目录下创建模型文件,例如 User.php

namespace app\index\model;
 
use think\Model;
 
class User extends Model
{
    // 定义表名(如果表名与模型名不一致)
    protected $name = 'user';
}

5.2 模型查询#

  • 查询单条记录
$user = User::get(1); // 根据主键 id=1 查询用户
if ($user) {
    echo $user->username;
}
  • 查询多条记录
$users = User::all(); // 查询所有用户
foreach ($users as $user) {
    echo $user->username. '<br>';
}

5.3 模型添加数据#

$user = new User;
$user->username = 'new_user';
$user->password = '123456';
if ($user->save()) {
    echo '用户添加成功';
}

6. 视图#

6.1 模板引擎#

ThinkPHP5 默认使用 Think 模板引擎。在控制器中渲染视图:

public function index()
{
    $data = ['name' => 'ThinkPHP5'];
    return view('index', $data); // 渲染 index.html 模板,并传递 $data 数据
}

6.2 模板语法#

  • 变量输出: 在模板文件(例如 application/index/view/index.html)中:
<p>{$name}</p>
  • 循环输出: 假设在控制器传递了一个数组 $list 到视图:
<ul>
    {volist name="list" id="item"}
        <li>{$item.name}</li>
    {/volist}
</ul>

7. 总结#

通过本文的介绍,读者了解了 ThinkPHP5 的安装、目录结构、路由、控制器、模型和视图等基础知识。在实际项目开发中,还需要进一步学习 ThinkPHP5 的高级功能,如数据库操作的更多方法、插件扩展、安全防护等。合理运用这些知识,可以高效地开发出功能丰富、性能良好的 Web 应用程序。

8. 参考#