第九章 配置文件

    配置文件对于需要在一个文件中管理全局模板变量的设计者来说很有用。一个例子是模板颜色。通常如果你想修改一个应用的配色方案,你不得不打开每个模板文件并修改其颜色。通过配置文件,颜色可以放置在一个地方,而只有一个文件需要更新。

例子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}或API函数config_load()

    你可以隐藏变量或整个段落,方法是在变量名或段落名前加一个句号,如[.hidden]。如果你的应用读取配置文件并获得一些敏感的数据而模板引擎并不需要这些数据,那么这个方法就很有用。如果第三方为你修改模板,那么你就可以确定他们不能通过将配置文件调入模板的方法来读取这些数据。

    参见{config_load}$config_overwriteget_config_vars()clear_config()以及config_load()