一、安装
1、下载安装
从官网下载ThinkPHP5的压缩包,解压到本地。
thinkphp5/
├─application/
├─public/
│ ├─index.php
│ └─.htaccess
├─vendor/
├─.htaccess
├─composer.json
└─think
2、配置虚拟主机
配置虚拟主机,将根目录指向thinkphp5/public/,在浏览器中输入域名即可看到 ThinkPHP 的欢迎界面。
VirtualHost *:80
DocumentRoot "path/to/thinkphp5/public"
ServerName thinkphp5.dev
Options Indexes FollowSymLinks
AllowOverride all
Order Deny,Allow
Allow from all
3、初始化
使用命令行,进入ThinkPHP5的根目录,运行init命令完成初始化。
cd path/to/thinkphp5
php think init
二、路由
1、基础路由
在路由配置文件route.php中,添加一个基础路由。
Route::get('hello/:name', 'index/hello');
这样就可以访问/hello/{name}这个地址了。
例如访问/hello/tp5,会映射到index控制器的hello方法,并将name参数值设置为tp5。
2、分组路由
可以定义多个路由分组,分别对应不同的固定前缀。比如:
Route::group('admin', function () {
Route::rule('user/add', 'admin/user/add');
Route::rule('user/edit/:id', 'admin/user/edit')->pattern(['id' => '\d+']);
Route::rule('user/delete/:id', 'admin/user/delete')->pattern(['id' => '\d+'])->method('DELETE');
});
3、RESTful路由
可以通过RESTful路由,直接映射到相应的方法,如get请求映射到index方法,post请求映射到save方法。
Route::resource('blog', 'blog')
这样就可以访问/blog的地址,并根据请求方法自动映射到相应的方法了。
三、控制器
1、基础控制器
在application目录下新建Index控制器,添加一个hello方法。
namespace app\index\controller;
class Index
{
public function hello($name = 'ThinkPHP5')
{
return 'hello,' . $name;
}
}
2、路由到控制器
在路由配置文件route.php中添加路由规则,将/hello/:name路由到Index控制器的hello方法。
Route::get('hello/:name', 'index/hello');
3、视图
在application目录下新建view/index/hello.html文件,编写模板内容。
<!DOCTYPE html>
<html>
<head>
<title>Hello</title>
</head>
<body>
<p>Hello,<?php echo $name; ?>!</p>
</body>
</html>
4、读取视图内容
在Index控制器的hello方法中,使用fetch方法读取view/index/hello.html文件的内容,并将name参数值传递到模板。
namespace app\index\controller;
class Index
{
public function hello($name = 'ThinkPHP5')
{
return $this->fetch('index/hello', ['name' => $name]);
}
}
四、模型
1、定义模型
在application目录下新建model/User.php文件,定义一个User模型类。
namespace app\index\model;
use think\Model;
class User extends Model
{
}
2、读取数据
在Index控制器中,调用User模型的select方法,读取所有User的数据。
namespace app\index\controller;
use app\index\model\User;
class Index
{
public function index()
{
$users = User::select();
return $this->fetch('index/index', ['users' => $users]);
}
}
3、显示数据
在view/index/index.html文件中,使用foreach循环遍历并显示User的数据。
<table>
<thead>
<tr>
<th>id</th>
<th>name</th>
<th>age</th>
<th>email</th>
</tr>
</thead>
<tbody>
<?php foreach($users as $user): ?>
<tr>
<td><?php echo $user['id']; ?></td>
<td><?php echo $user['name']; ?></td>
<td><?php echo $user['age']; ?></td>
<td><?php echo $user['email']; ?></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
五、数据库操作
1、配置数据库连接
在config/database.php文件中,配置数据库连接信息。
return [
// 数据库类型
'type' => 'mysql',
// 服务器地址
'hostname' => 'localhost',
// 数据库名
'database' => 'test',
// 用户名
'username' => 'root',
// 密码
'password' => '123456',
// 端口
'hostport' => '3306',
// 数据库表前缀
'prefix' => 'think_',
];
2、增删改查
在Index控制器中,调用User模型的方法,进行增删改查操作。
namespace app\index\controller;
use app\index\model\User;
class Index
{
public function add()
{
$user = new User;
$user->name = 'John';
$user->age = 20;
$user->email = 'john@example.com';
$user->save();
return '添加用户成功';
}
public function update($id)
{
$user = User::get($id);
$user->age = 25;
$user->save();
return '更新用户成功';
}
public function delete($id)
{
$user = User::get($id);
$user->delete();
return '删除用户成功';
}
public function select()
{
$users = User::select();
return $this->fetch('index/index', ['users' => $users]);
}
}
六、总结
本文通过对ThinkPHP5菜鸟教程的详细阐述,从安装、路由、控制器、模型和数据库操作等多个方面,为读者提供了系统化的ThinkPHP5开发知识。希望本文能为读者在ThinkPHP5的开发学习和实践过程中提供帮助。