【qiaoguo叨叨话】
我认为,mvc是一种常见的而且比较优秀的开发模式,我们在这个项目当中也是采用这种开发模式,m代表的是数据层,v代表的是视图层,c代表的是控制层。可以通俗地理解,m是用来跟数据库打交道,v是用来把信息展示跟用户看,c是主要是用来处理信息,是m层与v层进行联系的媒介。
在tp6中,在app文件夹下的controller文件夹里面就是存放着控制层的逻辑代码,我们可以在controller文件夹里面上次很多控制器文件,比如默认有index控制器,我们后期也可以放置后台登录控制器等等。如下图
在动手之前,我们先简单认识我们的index控制器代码
<?php
//命名空间 通俗理解为文件的目录地址
namespace app\controller;
//引用文件的具体来源
use app\BaseController;
//声明index控制器,index控制器继承自BaseController控制器(可以理解为是BaseController的儿子,拥有爸爸的所有的方法)
class Index extends BaseController
{
//声明index方法
public function index()
{
//返回一个静态页面
return '<style type="text/css">*{ padding: 0; margin: 0; } div{ padding: 4px 48px;} a{color:#2E5CD5;cursor: pointer;text-decoration: none} a:hover{text-decoration:underline; } body{ background: #fff; font-family: "Century Gothic","Microsoft yahei"; color: #333;font-size:18px;} h1{ font-size: 100px; font-weight: normal; margin-bottom: 12px; } p{ line-height: 1.6em; font-size: 42px }</style><div style="padding: 24px 48px;"> <h1>:) </h1><p> ThinkPHP V' . \think\facade\App::version() . '<br/><span style="font-size:30px;">14载初心不改 - 你值得信赖的PHP框架</span></p><span style="font-size:25px;">[ V6.0 版本由 <a href="https://www.yisu.com/" target="yisu">亿速云</a> 独家赞助发布 ]</span></div><script type="text/javascript" src="https://tajs.qq.com/stats?sId=64890268" charset="UTF-8"></script><script type="text/javascript" src="https://e.topthink.com/Public/static/client.js"></script><think id="ee9b1aa918103c4fc"></think>';
}
接下来,我们可以做一个小练习,尝试配置我们网站的首页页面。
我们现在采用的方法不是直接在控制器中返回静态页面代码,而是采用mvc模式,将展示给用户看到页面单独抽离出来。那么,就涉及到两个问题,被抽离的页面文件应该存放在哪里,还有就是我们如何让index方法映射到我们的静态页面去。
这里,你大可不必费心,在tp6中都给你安排好了,控制器我们就存放在controller文件,而展示给用户看的视图文件就存放在controller同级目录view目录中。具体步骤将会在以下展示。
在具体操作之前,我们可以开启错误信息,方便我们进行调试 。
1.修改控制器代码
打开【app】文件夹 -【controller】文件夹下的Index.php文件,修改index方法体内的内容。
<?php
namespace app\controller;
use app\BaseController;
class Index extends BaseController
{
public function index()
{
return view();
}
}
2.增加视图文件
在view文件夹内增加index文件夹,在index文件夹里面增加index.html文件.
通俗理解:view是放置视图层文件,index文件夹对应的是index控制器,index文件夹内具体的html网页文件对应的是控制器里面的具体的方法,比如说,如果是index方法,那么返回的视图名字就是index.html,如果在index控制器中有detail方法,那么,在index文件夹中就还有detail.html。
附:index.html文件内容
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
hello,qiaoguo
</body>
</html>
3.点开浏览器预览,会显示如下错误
产生的原因:自6开始,模板引擎独立出来了
解决的方法:需要我们额外安装
在主文件夹中,我们可以使用cmd安装,也可以使用phpstrom完成安装
composer require topthink/think-view
4.重新预览如下:
下一章,我将会尝试去配置我们电商项目的首页啦,要考虑的东西还是蛮多的,如果如何引入静态网页丫等等。
这是一个水果电商网站,我从站长下载的素材,下一章用它练练手吧。