【PHP】ThinkPHP基础
下载composer
ComposerA Dependency Manager for PHPhttps://getcomposer.org/
安装composer
查看composer是否安装
composer
composer --version
安装 ThinkPHP6
如果你是第一次安装的话,首次安装咱们需要打开控制台:
进入后再通过命令,在命令行下面,切换到你的WEB根目录下面:
cd E:\Web\www
接着输入以下命令安装 tp6.0:
composer create-project topthink/think tp621
这里的tp621
目录名你可以任意更改,这个目录就是我们后面会经常提到的应用根目录。
查看当前安装的tp61版本
cd到tp61,然后输入:php think version
即可运行成功
php think version
报错解决
开启debug调试:
找到app同级目录文件.example.env,更名为.env,另外在文件中要加上一句:APP_DEBUG = true,保存。
视图安装
视图功能由\think\View类配合视图驱动(也即模板引擎驱动)类一起完成,新版仅内置了PHP原生模板引擎(主要用于内置的异常页面输出),如果需要使用其它的模板引擎需要单独安装相应的模板引擎扩展。如果需要使用thinkTemplate模板引擎,需要安装think-view扩展(该扩展会自动安装think-template依赖库)
该扩展跟tp6安装多应用扩展一样,需要安装think-template(命令:composer require topthink/think-view),切记一定要在项目根目录进行安装
使用cmd窗口,将目录切换到ThinkPHP文件根目录下,使用composer安装thinkview引擎模板:
d:
cd /xampp/htdocs/tp
composer require topthink/think-view
配置文件
安装完成后,在config目录的view.php文件中进行模板引擎相关参数的配置
(多应用则是相应的应用下view.php),例如:
开启多应用模式
在默认情况下 tp6.0 是单应用模式,在开启多应用模式后目录结构会发生变化(如何开启后面学到再说)
在此只说明两者目录区别,在单应用模式下,app目录即使应用目录:
若使用多应用模式时,在app 目录下将会多出一个文件夹则是不同应用的目录:
在这个文件夹下需要放入默认的应用文件(原先的应用文件复制进去),多个项目创建多个即可。
四、站点应用入口
整个tp6.0 的文件入口在 public 目录下:
修改 index.php 你会发现访问后会有不同的效果。
若你想试着改变 index.php,例如修改如下(删除多余代码):
1. 开启多应用模式
默认是单应用的
如果要使用多应用模式,你需要安装多应用模式扩展think-multi-app。
composer require topthink/think-multi-app
扩展安装成功之后,在config目录下找到第一个app.php文件打开,在app.php添加配置: 'auto_multi_app' => true
app中的目录结构调整为
一定要修改namespace对应上应用的名称
模板渲染,模板路径
ThinkPHP 6 视图
ThinkPHP6.0框架默认支持PHP原生模板的配置及使用,包括修改配置文件将模板引擎改为PHP,以及模板渲染和变量赋值的方法。同时,文章也详细阐述了如何安装和配置thinkTemplate扩展,以及TP模板引擎的安装、配置、变量处理和模板渲染过程,包括模板路径、渲染规则和视图过滤。最后提到了如何切换和初始化不同的模板引擎。
框架6.0默认只能支持PHP原生模板,如果需要使用thinkTemplate模板引擎,需要安装think-view扩展(该扩展会自动安装think-template依赖库)。
PHP原生模板
1.配置文件,修改模板引擎
默认设置为Think,因为没有安装,直接使用会报错;
使用php原生模板,需要修改配置目录的view.php文件的模板引擎为`php`
(多应用则是相应的应用下view.php):
// 模板引擎类型使用Think
'type' => 'php',
报错提示
4.模板渲染
这里做一个简单示例,TP的模板渲染会做更详细讲解,
因为php原生模板变量渲染与常规TP不同,故作此示例:
5.控制器文件
// 添加引用
use think\facade\View;
// 变量赋值
View::assign('name', '张三');
// 模板输出
return View::fetch('user/index');
6.视图文件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>用户详情</title>
</head>
<body>
<h1>用户详情</h1>
<p>我是<?php echo $name ?></p>
</body>
</html>
TP模板引擎
1.安装
安装thinkview模板引擎,使用cmd窗口,将目录切换到ThinkPHP文件根目录下,使用composer安装thinkview引擎模板:
cd E:\Web\www\tp831
composer require topthink/think-view
2.配置文件
安装完成后,在配置目录的view.php文件中进行模板引擎相关参数的配置
(多应用则是相应的应用下view.php),例如:
比如我习惯模板变量标签是两个花括号,改一下这里就行
// 模板引擎普通标签开始标记
'tpl_begin' => '{{',
// 模板引擎普通标签结束标记
'tpl_end' => '}}',
// 标签库标签开始标记
'taglib_begin' => '{{',
// 标签库标签结束标记
'taglib_end' => '}}',
模板变量
View门面全局变量赋值
public function index()
{
// 单次赋值
View::assign('name', '张三');
// 批量赋值
View::assign(['gender' => '男', 'school' => '本科']);
// 输出模板
return View::fetch('user/index');
}
View门面当前模板赋值
public function index()
{
// 输出模板
return View::fetch('user/index', [
'name' => '张三',
'gender' => '男',
'school' => '本科'
]);
}
助手函数当前模板赋值
public function serviceContractPreview()
{
// 输出模板
return view('user/index', [
'name' => '张三',
'gender' => '男',
'school' => '本科'
]);
}
切换模板引擎
1.Engine初始化
视图类提供了engine方法对模板解析引擎进行初始化来切换不同的模板引擎:
使用门面View(think\facade\View)
没有变量赋值,直接输出模板
namespace app\index\controller;
use think\facade\View;
class Index
{
public function index()
{
// 使用内置PHP模板引擎渲染模板输出
return View::engine('php')->fetch();
}
}
如果有变量赋值
namespace app\index\controller;
use think\facade\View;
class Index
{
public function index()
{
// 初始化内置PHP模板引擎
View::engine('php');
// 变量赋值
View::assign('name', '张三');
// 模板输出
return View::fetch('index');
}
}
2.Config信息修改
如果需要动态改变模板引擎的参数,请使用视图类提供的config方法进行动态设置
namespace app\index\controller;
use think\facade\View;
class Index
{
public function index()
{
// 改变当前操作的模板路径
View::config(['type' => 'php']);
// 变量赋值
View::assign('name', '张三');
// 模板输出
return View::fetch('index');
}
}