当前位置:首页 > 编程知识 > 正文

ThinkPHP 6的使用教程

ThinkPHP是一个优秀的轻量级PHP 开发框架,他是功能完善、开发效率高的框架。ThinkPHP 6是最新版本,为满足现代Web开发需求,完美支持API和Web开发。小编根据自己的使用经验,在实际项目中和资料中选取了一些ThinkPHP6的最佳实践。以下是详细的使用教程。

一、安装与配置

1、通过Composer安装


composer create-project topthink/think tp6

2、配置数据库信息


// 访问路由配置
/mysql/:id [get]

// 获取到id参数,查询 @mysql 数据库中 @user 对应id 的 用户数据
public function mysql($id){
    return json(User::get($id));
}

// 数据库配置
    'mysql' => [
        // 数据库类型
        'type'        => 'mysql',
        // 服务器地址
        'hostname'    => '127.0.0.1',
        // 数据库名
        'database'    => 'test',
        // 用户名
        'username'    => 'root',
        // 密码
        'password'    => '123456',
        // 端口
        'hostport'    => '',
        // 数据库编码默认采用utf8
        'charset'     => 'utf8',
        // 数据库表前缀
        'prefix'      => 'think_',
        // 数据库调试模式
        'debug'       => false,
        // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
        'deploy'      => 0,
        // 数据库读写是否分离 主从式有效
        'rw_separate' => false,
        // 读写分离后 主服务器数量
        'master_num'  => 1,
        // 指定从服务器序号
        'slave_no'    => '',
        // 是否严格检查字段是否存在
        'fields_strict'  => true,
        // 数据集返回类型
        'resultset_type' => 'array',
        // 自动写入时间戳字段
        'auto_timestamp' => false,
        // 时间字段取出后的默认时间格式
        'datetime_format' => 'Y-m-d H:i:s',
        // 是否需要进行SQL性能分析
        'sql_explain' => false,
    ]

二、路由配置

ThinkPHP路由是一个非常好用,支持多种路由类型如动态路由(默认)和重写路由。ThinkPHP6和ThinkPHP5的使用方式相同。

1、默认路由配置


use think\facade\Route;

Route::get('/hello/:name', 'index/hello');

public function hello($name = 'ThinkPHP6')
{
    return 'hello,' . $name;
}

2、RESTful风格路由配置


Route::resource('blog', 'index/blog');

public function index()
{
    return '博客列表';
}

public function read($id)
{
    return '博客详情-ID:'.$id;
}

public function save()
{
    return '博客创建';
}

public function update($id)
{
    return '博客更新-ID:'.$id;
}

public function delete($id)
{
    return '博客删除-ID:'.$id;
}

三、控制器与模型

控制器是MVC框架中最重要的部分。在ThinkPHP 6中,控制器基类使用的是官方推荐的基类。所有的控制器都必须继承它。在ThinkPHP6中,可以使用注解的方式来进行URL路由的配置方式。这样会使得代码更为简洁明了。

1、控制器代码


namespace app\index\controller;

use app\BaseController;

class Index extends BaseController
{
    public function index()
    {
        return view();
    }

    public function hello($name = 'ThinkPHP6')
    {
        return 'hello,' . $name;
    }
}

2、模型代码


namespace app\index\model;

use think\Model;

class User extends Model
{
}

四、视图文件

视图是MVC中非常重要的一部分。在ThinkPHP 6中,视图使用TP推荐的模板引擎Think模板,有中文、英文两种语言模板。下面是一个简单的视图示例:

1、视图配置


return [
    // 模板引擎类型 支持 php think 支持扩展
    'type'           => 'Think',
    // 模板路径
    'view_path'      => '../template/index/',
    // 模板后缀
    'view_suffix'    => 'html',
    // 模板文件名分隔符
    'view_depr'      => DS,
    // 是否开启模板编译缓存,设为false则每次都会重新编译
    'tpl_cache'      => false,
    // 是否检查文件时间
    'tpl_deny_php'   => false,
    // 模板引擎普通标签开始标记
    'taglib_begin'   => '{',
    // 模板引擎普通标签结束标记
    'taglib_end'     => '}',
];

2、视图代码


{extend name="public/layout"}

{block name="content"}
    <h2>珍珍是个好女孩</h2>
{/block}

五、中间件

ThinkPHP 6的中间件在前面版本中已经存在,但并未得到广泛使用,它可以很好地解决在多个请求处理之间共享功能的问题。中间件是在请求到达控制器之前,检查或处理其他请求的逻辑。

1、中间件配置


namespace app\middleware;

class AdminAuth
{
    public function handle($request, \Closure $next)
    {
        if($request->param('username') != 'admin'){
            return redirect('/login');
        }

        return $next($request);
    }
}

// 在配置文件(config/middleware.php)中配置: 
return [
    // 中间件别名
    'check' => app\middleware\AdminAuth::class
];

2、中间件代码


Route::rule('mysql/:id', 'index/index/mysql')->middleware('check');
以上就是本篇ThinkPHP 6的使用教程的内容。ThinkPHP 6相比之前版本,提供了更多好用的功能。使用ThinkPHP 6开发,能够更加快速高效地开发出大型Web项目。