Chapter 9. 配置文件

配置文件可以让设计者将全局的模板变量以文件形式管理起来。 其中一个例子是管理模板的颜色值: 通常如果你需要从程序中更改颜色主题,那么你需要找到每个模板文件, 并且修改它们的颜色值。 通过配置文件,颜色值被统一放置到配置文件内,你只需要修改这个文件即可。


Example 9.1. 配置文件语法示例

  1. # global variables
  2. pageTitle = "Main Menu"
  3. bodyBgColor = #000000
  4. tableBgColor = #000000
  5. rowBgColor = #00ff00
  6.  
  7. [Customer]
  8. pageTitle = "Customer Info"
  9.  
  10. [Login]
  11. pageTitle = "Login"
  12. focus = "username"
  13. Intro = """This is a value that spans more
  14. than one line. you must enclose
  15. it in triple quotes."""
  16.  
  17. # hidden section
  18. [.Database]
  19. host=my.example.com
  20. db=ADDRESSBOOK
  21. user=php-user
  22. pass=foobar
  23.  

配置文件中的配置变量可以被引用起来,但不是必须的。 你可以使用单引号或者双引号。 如果有的值会跨度不止一行的,那么你需要用三引号(""")把它们括起来。 你可以将任何形式的注释放到配置文件中,但这不是有效的配置文件语法。 我们建议使用# (井号) 来作为注释行的开头。

上面配置文件的例子有两段。 段落的名字用[方括号]括起来。 段落名称可以是任意字符,但不包括[]符号。 最顶部的四个值是全局变量,也就是不在段落内的变量。 这些全局变量将总是被载入。 当一个特定的段落被载入,那么段落的变量以及全局变量都会被载入。 如全局变量和段落变量都有同样的变量,那么将使用段落的变量。 如有相同的两个变量在同一个段落,最后一个将会被使用,除非 $config_overwrite设置被关闭。

配置文件可以使用内置的函数
{config_load}
来载入,或者通过configLoad()函数进行载入。

你可以通过在变量名或段落名前面加上点号(.),来隐藏变量或者整个段落,如[.hidden]。 这个技巧在你的程序使用配置文件保存一些敏感信息,但这些信息又不希望模板引擎使用时,非常有用。 如果是第三方来对模板进行修改,你也可以保证他们不会在载入配置文件时,读取到这些敏感信息

配置文件(或资源)将使用相同的模板资源来进行载入。 这意味着配置文件还可以从数据库中载入,如$smarty->configLoad("db:my.conf")

参见 {config_load}, $config_overwrite, $default_config_handler_func, getConfigVars(), clearConfig()configLoad()

原文: https://www.smarty.net/docs/zh_CN/config.files.tpl