Smarty 的配置文件
开发人员一直使用配置文件来存储确定应用程序行为和操作的数据。例如,php.ini 文件负责确定PHP的大量行为。对于Smarty ,模板设计人员也可以利用配置文件的强大作用。例如,设计人员可以使用配置文件存储页面标题、用户消息以及有必要集中存储的任何信息。
以下是一个示例配置文件 (名为 app.config):
#Global Variables
appName = "PMNP News Service"
copyright = "Copyright 2005 PMNP News Service, Inc."
[Aggregation]
title = "Recent News"
warning = "Copyright warning.Use of this information is for personal use only."
[Detail]
title = "A Closer Look..."
中括号中包围的项称为节(section)。节之外的项都认为是全局的。这此项应当在定义任何节之前定义。
下面将展示如何使用config_load 函数来加载配置文件,还会解释如何在模板中引用配置变量。
配置文件存储在 configs 目录中,并使用Smarty函数 config_load 加载。下面是加载配置文件 app.config 的示例:
{config_load file="app.config"}
但是要记住,此调用只能加载配置文件的全局变量。如果要加载特定的节,需要使用 section 属性指定。所以,可以使用以下语法加载 app.config 的节 Aggregation:
{config_load file="app.config" section="Aggregation"}
另外两个可选参数介绍如下:
scope:确定所加载的配置变量的作用域。默认情况下设置为local,表示变量只能用于本地模板。其它可能的设置包括 parent 和 global 。作用域设置为 parent 时,变量可用于本地模板和调用模板。作用域设为global 时,变量则可以用于所有模板。
section:指定加载配置文件的特定节。因此,如果只对某个特定节感兴趣,可以只加载该节,而非整个文件。
引用配置变量
配置文件中变量的引用方式与其它变量的引用方式有所不同。实际上,这些配置变量使用几种不同的语法来引用,下面将介绍这个内容。
1、#
在 Smarty 模板中,可以在变量前面加上#号来引用配置变量。例如:
{#title}
2、Smarty的$smarty.config变量
引用配置变量时,如果喜欢更为正式的语法,可以使用 Smarty 的 $smarty.config 变量。例如:
{$smarty.config.title}
3、get_config_vars() 方法
array get_config_vars([string variablename])
get_config_vars() 方法返回一个数组,包含加载的所有配置变量值。如果只对某个变量值感兴趣,可以通过 variablename 传入该变量。例如,如果只对以上 app.config 配置文件中 Aggregation 节的 title 感兴趣,可以首先使用 config_load 函数加载该节:
{config_load file="app.config" section="Aggregation"}
然后,在模板中启用PHP的节中调用 get_config_vars( ),如下:
$title = smarty->get_config_vars("title");
当然,无论选择哪一种获取配置参数的语法,都不要忘记首先使用 config_load 函数加载配置文件。
posted on 2008-07-29 13:51
姜大叔 阅读(327)
评论(0) 编辑 收藏 所属分类:
PHP