Skip to content

配置文件

配置文件对于设计师来说非常方便,可以从一个文件管理全局模板变量。一个例子是模板颜色。通常,如果你想改变一个应用程序的颜色方案,你需要逐个查看每个模板文件并更改颜色。有了配置文件,颜色可以在一个地方保存,只需要更新一个文件。

# 全局变量
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."""

# 隐藏部分
[.Database]
host=my.example.com
db=ADDRESSBOOK
user=php-user
pass=foobar

配置文件变量的值可以用引号引起来,但不是必需的。你可以使用单引号或双引号。如果你有一个跨越多行的值,用三个引号(""")将整个值括起来。你可以通过任何不是有效配置文件语法的语法将注释放入配置文件中。我们建议在行的开头使用 #(哈希)。

上面的配置文件例子有两个部分。部分名称用[方括号]包围。部分名称可以是任意不包含[]符号的字符串。顶部的四个变量是全局变量,或者说不在任何部分内的变量。这些变量总是从配置文件中加载。如果加载了特定的部分,那么全局变量和该部分的变量也会被加载。如果一个变量既存在于全局也存在于一个部分,那么会使用部分变量。如果你在一个部分内给两个变量同样的名字,那么会使用最后一个,除非禁用了$config_overwrite

配置文件通过内置的模板函数{config_load}或 API 函数configLoad()加载到模板中。

你可以通过在变量名或部分名前加上一个句点(.)来隐藏变量或整个部分,例如[.hidden]。如果你的应用程序读取配置文件并从中获取模板引擎不需要的敏感数据,这将非常有用。如果你有第三方进行模板编辑,你可以确定他们不能通过将配置文件加载到模板中来读取配置文件的敏感数据。

配置文件(或资源)是由和模板相同的资源设施加载的。这意味着配置文件也可以从数据库中加载,如$smarty->configLoad("db:my.conf")

参见 {config_load}$config_overwrite$default_config_handler_funcgetConfigVars()clearConfig()configLoad()