一、$template_dir [模板目录变量]
该变量定义默认模板目录的名字。当包含文件时,若是不提供一个源类型(即源地址),那么将会到模板目录中寻找。默认状况下,目录是:“./templates”,也就是说他将会在和php执行脚本相同的目录下寻找模板目录。
二、$compile_dir [编译目录变量]
该变量定位编译模板的目录名字。默认状况下,目录是:“./templates_c”,也就是说他将会在和php执行脚本相同的目录下寻找编译目录。
技巧:该设置必须是一个相对或绝对路径。包含路径不用于写文件。
技巧:不推荐把编译目录放在web服务器根目录下。
三、$config_dir [配置目录变量]
该变量定义用于存放模板配置文件的目录,默认状况下,目录是:“./configs”,也就是说他将会在和php执行脚本相同的目录下寻找配置目录。
技巧:不推荐把编译目录放在web服务器根目录下。
四、$plugins_dir [插件目录变量]
该变量定义Smarty寻找所需插件的目录。默认是在SMARTY目录下的“plugins”目录。若是提供了一个相对路径,Smarty将首先在SMARTY目录下寻找,而后到当前工做目录下寻找,继而到php包含路径中的每一个路径中寻找。
五、$debugging [调试变量]
它能启动调试控制台。该控制台是一个javascript窗口,该窗口告诉你被包含的模板和应用于当前模板页面的变量。
六、$debug_tpl调试模板变量
该变量定义用于调试控制台的模板文件名字。默认状况下,其名字为:debug.tpl,位于Smarty目录中。
七、$debugging_ctrl [调试控制变量]
该变量做用是容许以交替的方式启动调试设置。NONE表示不容许交替方式。URL表示当关键词SMARTY_DEBUG出如今QUERY_STRING(查询字符串)中时,针对此脚本的调用,调试被启动。若是$debugging变量是真,则忽略其调试控制变量值。
八、$global_assign [全局配置变量]
定义一组老是隐式地做用于模板引擎的变量列表。这对于使全局变量或服务器变量可用于全部模板是很方便的,由于无需手工配置它们。在全局配置中的每一元素应当要么是一全局变量的名字,要么是一键/值对(键是全局数组名,值是对应该全局数组的变量数组)。$SCRIPT_NAME变量默认属于$HTTP_SERVER_VARS数组。
技巧:服务器变量能够经过$smarty变量得到,如{$smarty.server.SCRIPT_NAME}。参看$smarty变量一节。
九、$undefined [未定义变量]
该变量为Smarty设定没有获得定义的变量的值,默认为空.当前仅用来设定全局配置中的未定义变量为一个默认值.
$autoload_filters [自动加载过滤器变量]
若是你但愿在每次模板调用过程当中加载过滤器,你能够指定他们使用此变量,Smarty将自动为你加载它们.该变量是一个联合数组,在数组中键是过滤器类型,值是过滤器名字所组成的数组.例如:
$smarty->autoload_filters = array('pre' => array('trim', 'stamp'),
'output' => array('convert'));
十、$compile_check [编译检查变量]
每次调用PHP应用程序,Smarty 会试着查看自上次编译时间以来,当前模板是否被修改过.若是修改过了,她会从新编译那个模板.若是模板尚未被编译过,她将编译模板而无论编译检查如何设置.默认状况下编译检查这个变量设置为true.一旦一个应用程序投入产品中(模板将不会修改了),就再也不须要编译检查这一步了.为了最大性能,肯定将$compile_check设为"false".注意:若是设为了"false",虽然模板文件被修改,但你不会看到修改结果,由于模板没有获得从新编译.若是启动了缓存和编译检查,一旦有关模板文件或配置文件被更新,缓存文件将会重建.
十一、$force_compile [强迫编译变量]
强迫Smarty每次调用(从新)编译模板时.这项设置不受$compile_check的限制.默认状况下,它是无效的.它对于开发和调试很方便.但它决不能使用于产品环境下.若是启动了缓存,每次将会从新生成缓存文件.
十二、$caching [缓存变量]
告诉Smarty是否缓存模板的输出.默认状况下,她设为0,或无效.若是模板产生冗余内容,建议打开缓存.这样有利于得到良好的性能增益.你也能够为同一模板设有多个缓存.当值为1或2时启动缓存.1告诉Smarty 使用当前的$cache_lifetime变量判断缓存是否过时.2告诉 Smarty 使用生成缓存时的cache_lifetime值.用这种方式你正好能够在获取模板以前设置缓存生存时间,以便较精确地控制缓存什么时候失效.
若是启动了编译检查,一旦任何的模板文件或配置文件(有关缓存部分的配置文件)被修改,缓存的内容将会从新生成.若是启动了强迫编译,缓存的内容将总会从新生成.
1三、$cache_dir [缓存目录变量]
这是存放模板缓存的目录名.默认状况下,它是:"./cache",也就是说你能够在和php执行脚本相同目录下寻找缓存目录.你也能够用你本身的自定义缓存处理函数来控制缓存文件,它将会忽略这项设置.
技巧:这项设置必须是一个相对或绝对路径.包含路径不用于写文件.
技巧:这项设置必须是一个相对或绝对路径.包含路径不用于写文件.
1四、$cache_lifetime [缓存生存时间变量]
该变量定义模板缓存有效时间段的长度(单位秒),一旦这个时间失效,则缓存将会从新生成.若是要想实现全部效果,$caching必须因$cache_lifetime须要而设为"true".值为-1时,将强迫缓存永不过时.0值将致使缓存老是从新生成(仅有利于测试,一个更有效的使缓存无效的方法是设置$caching = false.)
若是启动了强迫编译,则缓存文件每次将会从新生成.要想有效地中止缓存,你能够利用clear_all_cache() 函数清除全部的缓存文件,或者利用clear_cache() 函数清除个别文件(或文件组).
技巧:若是你想给某些模板设定它们本身的缓存生存时间,你能够在调用display()或fetch()函数以前,经过设置$caching = 2,而后设置$cache_lifetime为一个惟一值来实现.
1五、$cache_handler_func [缓存处理函数变量]
你能够提供一个自定义函数来处理缓存文件,而不是经过变量$cache_dir使用内置方法.
1六、$cache_modified_check [缓存修正检查变量]
若是设置该变量为真,Smarty将分析客户端发送来的If-Modified-Since头信息.若是缓存文件时间戳自上次访问以来没有改变,则发送一个"304 Not Modified"头,而不是缓存文件内容.这种方式仅工做于没有 {insert} 标记的缓存内容.
1七、$config_overwrite [配置覆盖变量]
若是设该变量为真,则从配置文件中读取出来的变量将会互相覆盖.不然,变量将会放到一个数组中.若是你想把配置文件中的数据存储到数组里,这种方式是颇有用的,仅仅列出每一个元素屡次就能够了.默认状况下,设为真.
1八、$config_booleanize [配置布尔化变量]
若是该变量设为真,配置文件中的on/true/yes 和 off/false/no值会自动转化为布尔值.这样的话,你就能够在模板中像{if #foobar#} ... {/if}这样使用这些值了.若是foobar为on, true 或 yes,那么 {if}语句就会执行了.默认状况下,该变量值为真.
1九、$config_read_hidden [配置读取隐藏变量]
若是设为真,在配置文件中的隐藏节块能够从模版中读取出来.典型的你会设为假,这样你能够在配置文件里存放敏感数据,例如数据库参数,而不用担忧模版会调用他们.默认状况下,该变量设为假.
20、$config_fix_newlines [配置固定换行符变量]
若是该变量设为真,那么在配置文件中的mac 和 dos 换行符(\r and \r\n)在语法解析时将会转换为\n. 默认状况下,该变量为真.
2一、$default_template_handle r_func [默认模板处理函数变量]
该函数在模板不能从它的源目录下获取时会获得调用.
2二、$php_handling [PHP处理变量]
该变量告诉Smarty怎样处理嵌入到模版中的php代码.有四种可能的设置,默认为SMARTY_PHP_PASSTHRU.注意:改变量的设置不会影响模板里面{php}{/php}标记中的php代码.
原样输出标记.
做为html实体引用标记
从模板中移出标记.
将做为php代码执行标记.
极度不同意将php代码嵌入到模板中.
2三、$security [安全变量]
安全变量要么是真,要么是假.默认为假.当你不信任模板中的可编辑部分(例如经过ftp方式上传编辑的),并想经过模板语言减少系统非安全的风险时,安全变量设为真比较适合.设为真会将下面的规则强加于模板语言中,除非特别地用$security_settings覆盖.
若是变量$php_handling设为了SMARTY_PHP_ALLOW,则会隐式地被修改为SMARTY_PHP_PASSTHRU
PHP函数在IF语句中是不容许的,除了在$security_settings中另行指出.
模板仅能够包含于$secure_dir数组列出的目录中.
本地文件仅能够用{fetch}获取于$secure_dir数组列出的目录中.
不容许有{php}{/php}标记.
PHP函数不容许做为修正器,除了在$security_settings中指出.
2五、$secure_dir [安全目录变量]
这是一个与安全有关的本地目录数组变量.当启动安全变量时{include} 和 {fetch}会用到此数组变量.
$security_settings [安全配置变量]
用于当启动安全变量时覆盖或另行指定安全配置.有如下几种可能的配置:
PHP_HANDLING - 真或假.若是真,则不检查$php_handling的配置.
IF_FUNCS - 这是一个可容许包含在if语句中的php函数名数组.
INCLUDE_ANY - 真或假.若是真,能够从文件系统中包含任何模板,而无论$secure_dir目录设置如何.
PHP_TAGS - 真或假.若是真,{php}{/php}容许在模板中存在.
MODIFIER_FUNCS - 这是一个可用做修正器的php函数名数组.
2六、$trusted_dir [信任目录变量]
信任目录变量仅用在$security启动以后.这是一个全部创建信任的目录数组变量.你能够将php脚本放到这些信任目录中,这些脚本会直接在模板里以{include_php}标记获得执行.
2七、$left_delimiter [左结束符变量]
用于模板语言中,默认是"{".
2八、$right_delimiter [右结束符变量]
用于模板语言中,默认是"}".
2九、$compiler_class [编译类变量]
指定Smarty用来编译模板的编译类名.默认为:'Smarty_Compiler'.仅适合于高级用户.
30、$request_vars_order [变量顺序变量]
请求变量的顺序在这里配置,相似于php.ini中的变量顺序.
3一、$request_use_auto_globals [自动全局变量]
指定Smarty是否使用php的$HTTP_*_VARS[]数组变量(默认$request_use_auto_globals=false)或$_*[]数组($request_use_auto_globals=true)变量.这对使用了{$smarty.request.*}, {$smarty.get.*}等标记的模板有影响.值得注意的是:若是设置$request_use_auto_globals为真,variable.request.vars.order就无效了但php的gpc_order配置值还有做用.
3二、$compile_id [编译ID变量]
永久的编译鉴别号.做为一个可选办法将相同的编译号传递给每一个函数调用,你能够设置这个编译id,随后此id将会被隐含地使用.
3三、$use_sub_dirs [子目录变量]
若是你的php环境不容许Smarty建立子目录,则设此变量为假.子目录很是有用,因此尽量的使用他们.
3四、$default_modifiers [默认修正器变量]
这是一个修正器数组变量,这些修正器隐式地做用于模板中的每一个变量.例如:针对HTML,用数组('escape:"htmlall"')默认地忽略每一个变量;为了使一个变量免除于默认修正器,请将参数为"nodefaults"的特殊"smarty"修正器做用于它,例如:{$var|smarty:nodefaults}.
3五、$default_resource_type [默认源类型变量]
该变量告诉smarty隐式地使用什么源类型.默认值为'file',也就是说,$smarty->display('index.tpl');和and $smarty->display('file:index.tpl');从意思上是同样的.祥见resource一章。