12月13日下午:模板分离和公共文件导入

use是php5.3以后加入的新特性,相当于require和include

use Think\Controlller其实就是引用了thinkphp引擎文件夹里think目录下的Controller.class.php

为了规范,都是在controller里面间接继承。直接创建Base.php,然后继承Controller

12月13日下午:模板分离和公共文件导入_第1张图片

接着,又在index.php中导入使用Base控制器,最后让index继承Base,并且为了写的更规范,return $this->view->fetch();这表示在当前这个控制器中有个view属性,它保存的是一个视图对象,这个视图对象中有个fetch()方法,我理解就是输出视图模板。

12月13日下午:模板分离和公共文件导入_第2张图片

$this->fetch(),这个方法需要继承Controller类,而view()方法不需要集成controller类,如果需要用到controller类中的其它方法,建议使用$this->fetch()这种方法,如果只是输出模板就直接用view()。

逻辑梳理:

首先为了间接继承基类控制器,先创建一个Base.php,在Bash.php中继承基类控制器。代码逻辑就是指定命名空间,然后use基类控制器,最后声明Base类继承Controller。

间接继承的间接点上面一步已经创建好了。下面就是再让index.php控制器继承这个间接点了。

首先还是指定命名空间,都在app\index\controller中,然后用use引入间接点Base,这个间接点的位置就是当初创建这个控制器的时候指定的命名空间。最后,让index类继承Base控制器



上面做好之后,将application/view/index/index.html这个之前导入模板进行模板分离。

在application/view/下创建一个新的文件夹public,再在这个文件夹中创建meta.html。将application/view/index/index.html中的meta部分剪切到meta.html中,同时在index.html中用{include file='"public/meta" /}导入进来(这里我有个疑惑,public是index.html的上级目录,这样就可以导入的话,是不是有点不符合常理?或许是因为这是thinkphp框架吧。。。不然连后缀都没有,肯定导入错误啊!)

同理,将view/index/index.html中的header部分给剪切出来,同时在view/public中创建新的header.html文件,粘贴到这里。然后再到view/index/index.html中像下图这样引用。

12月13日下午:模板分离和公共文件导入_第3张图片

综上所述,将menu.html也弄好,footer也弄好就可以了。一些不用的直接删除就可以了。。。

你可能感兴趣的:(12月13日下午:模板分离和公共文件导入)