ThinkPHP5 教程全集
ThinkPHP 是一个开源的轻量级 PHP 开发框架,遵循 Apache2 开源协议发布,ThinkPHP5 是其重要版本,在性能、功能和易用性上都有显著提升。以下是一份较为全面的 ThinkPHP5 教程。
一、环境搭建
(一)安装 PHP
- Windows:可以从 PHP 官方网站 下载 Windows 版本的 PHP,解压后将目录添加到系统环境变量的
Path
中。 - Linux(以 Ubuntu 为例):
sudo apt update
sudo apt install php
(二)安装 Web 服务器(以 Apache 为例)
- Windows:从 Apache 官方网站 下载 Windows 版本的 Apache,解压后配置
httpd.conf
文件,设置根目录等信息,然后启动 Apache。 - Linux(以 Ubuntu 为例):
sudo apt update
sudo apt install apache2
(三)安装 Composer
Composer 是 PHP 的依赖管理工具,ThinkPHP5 使用 Composer 进行包管理。
- Windows:从 Composer 官方网站 下载 Windows 安装程序,按照提示安装。
- Linux:
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
(四)安装 ThinkPHP5
使用 Composer 创建 ThinkPHP5 项目:
composer create-project topthink/think tp5
上述命令会在当前目录下创建一个名为 tp5
的 ThinkPHP5 项目。
二、目录结构
| 目录 | 说明 |
| - | - |
| application
| 应用目录,包含项目的各个模块,如 index
模块等。 |
| public
| Web 服务器指向的目录,入口文件 index.php
位于此目录。 |
| thinkphp
| 框架核心目录,包含框架的核心代码。 |
| vendor
| Composer 依赖包目录。 |
| config
| 配置文件目录,包含各种配置文件,如数据库配置等。 |
| runtime
| 运行时目录,用于存储缓存、日志等临时文件。 |
三、路由
(一)基本路由
在 application/route.php
文件中定义路由规则:
use think\Route;
// 简单路由
Route::rule('hello/:name', 'index/hello');
上述代码定义了一个路由规则,当用户访问 http://yourdomain.com/hello/thinkphp
时,会调用 index
模块下的 hello
方法,并将 thinkphp
作为参数传递给 name
。
(二)分组路由
Route::group('api', function () {
Route::get('user/:id', 'api/User/read');
Route::post('user', 'api/User/create');
});
上述代码定义了一个分组路由,所有以 api
开头的路由都会被分组处理。例如,访问 http://yourdomain.com/api/user/1
会调用 api
模块下的 User
控制器的 read
方法。
四、控制器
(一)创建控制器
在 application/index/controller
目录下创建一个名为 Hello.php
的控制器文件:
<?php
namespace app\index\controller;
use think\Controller;
class Hello extends Controller
{
public function index($name = 'ThinkPHP')
{
return 'Hello, ' . $name;
}
}
(二)调用控制器
通过路由或直接在浏览器访问 http://yourdomain.com/index/hello/index/name/thinkphp
,会调用 Hello
控制器的 index
方法,并输出 Hello, thinkphp
。
五、模型
(一)创建模型
在 application/index/model
目录下创建一个名为 User.php
的模型文件:
<?php
namespace app\index\model;
use think\Model;
class User extends Model
{
// 设置当前模型对应的完整数据表名称
protected $table = 'user';
}
(二)使用模型
在控制器中使用模型进行数据库操作:
<?php
namespace app\index\controller;
use app\index\model\User;
class UserController
{
public function index()
{
// 查询所有用户
$users = User::select();
foreach ($users as $user) {
echo $user->name . '<br>';
}
}
}
六、数据库操作
(一)配置数据库
在 config/database.php
文件中配置数据库连接信息:
return [
// 数据库类型
'type' => 'mysql',
// 服务器地址
'hostname' => '127.0.0.1',
// 数据库名
'database' => 'test',
// 数据库用户名
'username' => 'root',
// 数据库密码
'password' => '',
// 数据库编码默认采用 utf8
'charset' => 'utf8',
// 数据库表前缀
'prefix' => 'tp_',
];
(二)使用查询构建器
use think\Db;
// 插入数据
Db::name('user')->insert(['name' => 'thinkphp', 'email' => 'thinkphp@example.com']);
// 查询数据
$users = Db::name('user')->select();
// 更新数据
Db::name('user')->where('id', 1)->update(['name' => 'new name']);
// 删除数据
Db::name('user')->where('id', 1)->delete();
七、视图
(一)创建视图
在 application/index/view
目录下创建一个名为 hello.html
的视图文件:
<!DOCTYPE html>
<html>
<head>
<title>Hello</title>
</head>
<body>
<h1>Hello, {$name}</h1>
</body>
</html>
(二)渲染视图
在控制器中渲染视图:
<?php
namespace app\index\controller;
use think\Controller;
class Hello extends Controller
{
public function index()
{
$name = 'ThinkPHP';
return $this->fetch('hello', ['name' => $name]);
}
}
八、常用组件
(一)缓存
use think\Cache;
// 设置缓存
Cache::set('name', 'thinkphp', 3600);
// 获取缓存
$name = Cache::get('name');
// 删除缓存
Cache::delete('name');
(二)日志
use think\Log;
// 记录日志
Log::record('这是一条日志信息');
Log::write();
九、项目实战示例
(一)需求分析
开发一个简单的博客系统,包含列表展示、详情查看、发布等功能。
(二)数据库设计
创建 article
表:
CREATE TABLE `article` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(255) NOT NULL,
`content` text NOT NULL,
`create_time` int(11) NOT NULL,
PRIMARY KEY (`id`)
);
(三)代码实现
- 创建模型:在
application/index/model
目录下创建Article.php
。 - 创建控制器:在
application/index/controller
目录下创建ArticleController.php
,实现列表、详情和发布功能。 - 创建视图:在
application/index/view/article
目录下创建index.html
、detail.html
和create.html
。
ThinkPHP5 是一个功能强大、易于使用的 PHP 开发框架,通过掌握其环境搭建、路由、控制器、模型、数据库操作、视图和常用组件等知识,可以快速开发出高质量的 Web 应用程序。在实际开发中,还需要不断学习和实践,积累项目经验,以更好地应对各种开发需求。
(牛站网络)