前言:利用tp框架做网站首先现将制作好的前端HTML等文件集成到tp框架中在考虑功能逻辑如何实现。
前后台需要实现分离,前台在前台,后台在后台,公共放在public下,这样有利于管理,也有利安全
这里假装有一张img目录结构图,回头补上
引入前台模板页面:
①:首先将前台所有的CSS,js,img等文件全部copy到tp框架中的 /public/static/index 中;
②:在controller控制器下完善index首页对应的控制器,代码附上,就是继承Controller控制器,然后给index方法返回对应的视图界面(view)
<?php
namespace app\index\controller;
use think\Controller;
class Index extends Controller
{
public function index()
{
return $this ->fetch();
}
}
③:然后新建index首页视图,app/index/view/index新建一个index.html文件,里面存放视图代码,在里面修改所有错误的路径进行web访问
注意:完成上面的步骤基本上index首页就可以看到该有的效果了,所有的界面都是需要通过控制器去调用对应的视图界面,所以其他的界面都类似,完成一个其他的都不是问题,(控制器指向对应view)。
引入后台模板页面:
首先新建一个后台的模块,在public/index.php中加以下代码
// 定义应用目录
define('APP_PATH', __DIR__ . '/../application/');
// 加载框架引导文件
require __DIR__ . '/../thinkphp/start.php';
// 自动生成admin模块
\think\Build::module('admin');
完成以后刷新网页,在打开项目就会有admin的一个基础模块,很方便。这个时候删除上方标红线的代码后继续完善后台模板
后台和前台步骤一致,这里就不赘述了,完成所有的界面引入后就可以实现相关的功能了。入坑顺利.
小bug修复:
完成模板的引入后会存在一些不是很严重的小问题,这里总结所有的问题并一一修复;
①:我们在html文件中引入css,js等文件基本上都是使用的绝对路径,当然这个没有什么错,可以正常访问,但是随着后期我们需要修改绝对路径中的文件名的时候,那工作量简直不要......
一般情况下我们都是使用define定义一个常量,然后引入相关文件;
在tp5中已经直接定义好了,我们只需要在 /applicattion/config.php中找到视图输出字符串转换进行设计即可
‘自己定义的’=>‘替换的目录名称’ 例如:‘__Colt__’ => '/static', 这样的话后期维护修改效率都会大大提升
②:仔细观察其实所有的网站中的各个界面都有一部分是相同的,比如head,bottom等,像这种情况的话我们完全可以把这部分抽离出来,等到再次调用的时候一行代码其实就可以改定。
抽离就不说了,这个直接复制黏贴就ok。
例如:调用head和nav导航条
{include file="public/heads,public/nav"}