What is Smarty?
Why use it?
Use Cases and Work Flow
Syntax Comparison
Template Inheritance
Best Practices
Crash Course
You may use the Smarty logo according to the trademark notice.
For sponsorship, advertising, news or other inquiries, contact us at:
配置文件可以让设计者将全局的模板变量以文件形式管理起来。 其中一个例子是管理模板的颜色值: 通常如果你需要从程序中更改颜色主题,那么你需要找到每个模板文件, 并且修改它们的颜色值。 通过配置文件,颜色值被统一放置到配置文件内,你只需要修改这个文件即可。
Example 9.1. 配置文件语法示例
# global variables pageTitle = "Main Menu" bodyBgColor = #000000 tableBgColor = #000000 rowBgColor = #00ff00 [Customer] pageTitle = "Customer Info" [Login] pageTitle = "Login" focus = "username" Intro = """This is a value that spans more than one line. you must enclose it in triple quotes.""" # hidden section [.Database] host=my.example.com db=ADDRESSBOOK user=php-user pass=foobar
配置文件中的配置变量可以被引用起来,但不是必须的。
你可以使用单引号或者双引号。
如果有的值会跨度不止一行的,那么你需要用三引号(""")把它们括起来。
你可以将任何形式的注释放到配置文件中,但这不是有效的配置文件语法。
我们建议使用#
(井号) 来作为注释行的开头。
上面配置文件的例子有两段。
段落的名字用[方括号]括起来。
段落名称可以是任意字符,但不包括[
或 ]
符号。
最顶部的四个值是全局变量,也就是不在段落内的变量。
这些全局变量将总是被载入。
当一个特定的段落被载入,那么段落的变量以及全局变量都会被载入。
如全局变量和段落变量都有同样的变量,那么将使用段落的变量。
如有相同的两个变量在同一个段落,最后一个将会被使用,除非
$config_overwrite
设置被关闭。
配置文件可以使用内置的函数
{config_load}
来载入,或者通过configLoad()
函数进行载入。
你可以通过在变量名或段落名前面加上点号(.),来隐藏变量或者整个段落,如[.hidden]
。
这个技巧在你的程序使用配置文件保存一些敏感信息,但这些信息又不希望模板引擎使用时,非常有用。
如果是第三方来对模板进行修改,你也可以保证他们不会在载入配置文件时,读取到这些敏感信息
配置文件(或资源)将使用相同的模板资源来进行载入。
这意味着配置文件还可以从数据库中载入,如$smarty->configLoad("db:my.conf")
。
参见
{config_load}
,
$config_overwrite
,
$default_config_handler_func
,
getConfigVars()
,
clearConfig()
和
configLoad()