如何关闭ThinkPHP的模板缓存
ThinkPHP的模板缓存是无奈关闭的,因为内置的模板引擎是一个编译型的模板引擎,必须经过编译后生成一个可执行的缓存文件才能被执行。但是可以设置缓存的有效期,例如设置
‘TMPL_CACHE_TIME’ =>3, // 模板缓存有效期 -1 永久 单位为秒
这样,每隔3秒系统会自动重新编译模板文件。默认的配置是-1 表示永久缓存,除非模板文件有改动,模板文件一旦有改动会自动重新编译,如果是包括进来的外部文件有修改,系统是不会自动重新编译的。
ThinkPHP的模板如何使用PHP本身作为模板引擎
ThinkPHP内置的模板引擎也支持直接在模板文件里面使用PHP代码,如果你不想使用任何模板引擎标签的话,可以配置模板引擎类型为PHP就可以完全使用php本身作为框架的模板引擎,在项目配置里面添加:
‘TMPL_ENGINE_TYPE’ =>’php’
ThinkPHP的模板可以使用第三方的的模板引擎吗
ThinkPHP框架允许你使用第三方的模版引擎。目前官方已经提供了Smarty模版引擎的插件,已经有人给ThinkPHP开发了TemplateLite、EaseTempalte和DzTemplate模版引擎插件。而且对于自己熟悉的模版引擎来说,非常容易扩展类似的插件。然后在项目配置文件里面配置使用何种模板引擎就可以了。
如何输出其他模块的操作模板
系统提供的display方法支持调用不同位置的模板文件,包括其他模块的操作,例如下面的方法可以调用Member模块的read操作模板:
$this->display(’Member:read’);
模板文件开头使用是什么意义
这表示当前模板文件要加载html标签库,这样在模板文件里面就能使用类似
之类的标签了,内置的模板引擎是基于标签库和XML解析的,所以必须要引入相应的标签库才能进行标签解析,因为系统默认会加载cx标签库,所以
这样的标签是不需要自己加载标签库的。Cx标签库之外的都需要在模板文件的开头用< div>
某些编辑器无奈识别XML标签,模板标签的定界符可以修改吗
内置的模板引擎默认采用的是XML标签作为标签的定界符,但是可以修改的,下面是系统默认的配置,包括普通模板引擎和标签库的标签的起始和结束标记:
‘TMPL_L_DELIM’=>’{', // 模板引擎普通标签开始标记
‘TMPL_R_DELIM’=>’}', // 模板引擎普通标签结束标记
‘TAGLIB_BEGIN’=>’<’, // 标签库标签开始标记
‘TAGLIB_END’=>’>’, // 标签库标签结束标记
需要注意的两种类型的标记不要设置为相同的,以免引起混淆而无奈正常解析。
我不想直接输出模板文件的内容,而是想获取模板输出的内容应该怎么处理
Action类的display方法是用于渲染模板文件并输出,可以使用fetch方法渲染模板文件但不是直接输出,而是返回内容。
模板文件里面经常使用到的__URL__和__APP__有什么作用
如果使用了内置模板引擎的话,可以在模板文件里面使用一些已经定义好的特殊字符串,系统在解析模板的时候会自动替换成相关的系统常量,这些字符串的解析进程是在模板编译的时候进行的。这些可替换的字符串包括:
../public //项目公共目录
__PUBLIC__ //网站公共目录
__ROOT__ //网站根目录
__TMPL__//当前模板目录
__APP__ //当前项目地址
__URL__ //当前模块地址
__ACTION__ //当前操作地址
__SELF__ //当前页面地址
如何在模板文件里面直接输出系统变量和常量
系统变量,必须以$Think.打头,如
{$Think.server.script_name } //取得$_SERVER变量
{$Think.session.session_id } // 获取$_SESSION变量
{$Think.get.pageNumber } //获取$_GET变量
{$Think.cookie.name } //获取$_COOKIE变量
输出系统常量
{$Think.const.__FILE__ }
{$Think.const.MODULE_NAME }
APP_PATH // 当前项目目录
APP_NAME // 当前项目名称
ACTION_NAME // 当前操作名称
CACHE_PATH // 项目模版缓存目录
CONFIG_PATH //项目配置文件目录
COMMON_PATH//项目公共文件目录
DATA_PATH // 项目数据文件目录
GROUP_PATH //当前分组名称
HTML_PATH//项目静态文件目录
IS_APACHE // 是否属于 Apache
IS_CGI//是否是CGI模式
IS_IIS //是否属于 IIS
IS_WIN //是否属于Windows 环境
IS_LINUX //是否属于 Linux 环境
IS_FREEBSD //是否属于 FreeBsd 环境
LIB_PATH // 项目类库目录
LOG_PATH // 项目日志文件目录
LANG_PATH // 项目语言文件目录
LANG_SET // 浏览器语言
MEMORY_LIMIT_ON // 是否有内存使用限制php.ini 当中是否有内存使用大小的限制
MODULE_NAME //当前模块名称
MAGIC_QUOTES_GPC // MAGIC_QUOTES_GPC,是否开启自动转义
TMPL_PATH // 项目模版目录
TEMP_PATH //项目临时文件目录
THINK_VERSION //ThinkPHP 版本号
THINK_PATH // ThinkPHP 系统目录
TMPL_FILE_NAME //当前操作的默认模版名(含路径)
TEMPLATE_NAME //当前模版名称
TEMPLATE_PATH //当前模版路径
PLUGIN_PATH // 项目插件文件目录
VENDOR_PATH // 第三方类库目录
NOW_TIME // 当前时间戳
OUTPUT_GZIP_ON // 是否开启输出压缩
__ROOT__ // 网站根目录地址
__APP__ // 当前项目(入口文件)地址
__URL__ // 当前模块地址
__ACTION__ // 当前操作地址
__SELF__ // 当前 URL 地址
__CRREUT_//当前模块模板地址
WEB_PUBLIC_URL //网站公共目录
APP_PUBLIC_URL //项目公共模版目录
模板中使用的系统常量
__ROOT__ // 网站根目录地址
__APP__ // 当前项目(入口文件)地址
__URL__ // 当前模块地址
__ACTION__ // 当前操作地址
__SELF__ // 当前 URL 地址
__PUBLIC__ // 网站公共目录
../Public(不区分大小写) // 项目公共模版目录