配置文件
有了配置文件,设计师们可以通过一个文件来管理全局模板变量,这很方便。一种示例是模板颜色。通常来说,如果你想要更改应用程序的颜色方案,你得逐个查看每个模板文件并且更改颜色。而有了配置文件,颜色可以保存在一个地方,只更新一个文件即可。
# 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}
或 API configLoad()
函数加载到模板中。
可以通过在变量名称或部分名称前加上句点 (.) 隐藏变量或整部分,例如 [.hidden]
。如果应用程序读取配置文件并从其中获取模板引擎不需要的敏感数据,则此方法会很有用。如果有第三方执行模板编辑,你可以确信他们无法通过将敏感数据加载到模板中读取配置文件中的数据。
与模板一样,配置文件(或资源)由相同的资源功能加载。这意味着还可通过数据库加载配置文件:$smarty->configLoad("db:my.conf")
。
另请参阅 {config_load}
、$config_overwrite
、$default_config_handler_func
、getConfigVars()
、clearConfig()
和 configLoad()