ThinkPHP3.0完全开发手册                                           

 

8.26               引入标签库

前面我们所讲述的标签用法都是内置的标签库的用法,事实上,内置模板引擎的标签库是可以扩展和增加标签的,一旦你扩展和使用了新的标签库,就必须要告诉模板当前要使用的标签库名称,否则不会自动导入,防止以后标签库大量扩展后增加解析工作量,导入标签库使用tagLib标签。

格式:<tagLib name="标签库1[,标签库2,…]"/>

可以同时导入多个标签库,用逗号分隔,例如:

<tagLib name="html"/>

表示在当前模板文件需要引入html标签库。要引入标签库必须确保有Html标签库的定义文件和解析类库(如何扩展这种方式请参考前面的标签库扩展部分)。

引入后,html标签库的所有标签在当前模板页面中都可以使用了。外部导入的标签库必须使用标签库前缀的xml标签,避免两个不同的标签库中存在同名的标签定义,例如(假设Html标签库中已经有定义selectlink标签):

<html:select options='name' selected='value' />

<html:link href='/path/to/common.js' />

标签库使用的时候忽略大小写,因此下面的方式一样有效:

<HTML:LINK HREF='/path/to/common.js' />

 

如果你的每个模板页面都需要加载Html标签库的话,也可以通过配置直接预先加载Html标签库。

 'TAGLIB_PRE_LOAD' => 'html' ,

如果有多个标签库需要预先加载的话,用逗号分隔。定义之后,每个模板页面都可以直接使用:

<html:select options='name' selected='value' />

而不需手动引入Html标签库。

 

假设你确信Html标签库无论在现在还是将来都不会和系统内置的标签库存在相同的标签,那么可以配置TAGLIB_BUILD_IN的值把Html标签库作为内置标签库引入,例如:

 'TAGLIB_BUILD_IN' => 'cx,html' ,

这样,也无需在模板文件页面引入Html标签库了,并且可以不带前缀直接使用Html标签库的标签:

<select options='name' selected='value' />

注意,cx标签库是系统内置标签库,不能删除定义。


NetPc