在前台调用模板的时候,一般会将公用的部分(头部、左侧|右侧、底部)摘出来,单独作为一个文件来引入。这样会使代码更容易维护,但是由于每个文件都载入公共模板,就会需要在多个控制器里面分配同样的数据或者在公共模板里面写PHP代码来读取数据,虽然可以达到同样的功能,但是前者重复使用了代码,后者没有使HTML和PHP代码分离,与面向对象程序设计思想以及使用框架的初衷背道而驰。所以我们可以使用一种更优雅的方式来解决,那就是扩展标签库自定义自己的标签。
例如:网站导航栏是每个页面都需要加载的~ 我们可以在里面定义一个<nav></nav>标签来读取导航栏并且排序好~~这样既简化了代码又方便前端调用而且看着也舒服~如何自定义自己的标签,步骤如下:
1,首先在当前模块的Controller文件夹同级目录新建一个文件夹,名称是TagLib。
2,在TagLib里面新建一个PHP文件,如:TagLibMytags.class.php。需要注意的是:文件名前缀TagLib是必须的,Mytags是你的Tag名称。
3,TagLibMytags.class.php的内容如下:
<?php
/**自定义标签库文件
*/
namespace Home\TagLib;
use Think\Template\TagLib;
class TagLibSptag extends TagLib {
protected $tags = array(
'test' => array(
'attr' => 'id, name',//attr 标签支持的属性列表