開發人員一直使用配置文件來存儲確定應用程序行為和操作的數據。例如,php.ini文件負責確定PHP的大量行為。對於Smarty,模板設計人員也可以利用配置文件的強大作用。例如,設計人員可以使用配置文件存儲頁面標題、用戶消息以及有必要集中存儲的任何信息。
以下是一個示例配置文件(名為app.config):
中括號包圍的項稱為節(section)。節之外的項都認為是全局的。這些項應當在定義任何節之前定義。下一節將展示如何使用config_load函數來加載配置文件,還會解釋如何在模板中引用配置變量。最後,注意warning變量數據包圍在三個引號中。如果字符串包含文件的多行內容就必須使用這種語法。
注解 當然,Smarty的配置文件不會取代層疊樣式表(CSS)。可以在網站設計(背景顏色、字體等等)中使用CSS,而在CSS不支持的方面(如頁面標題)使用配置文件。
配置文件存儲在configs目錄中,並使用Smarty函數config_load加載。下面是加載配置文件app.config的示例:
但是要記住,此調用只能加載配置文件的全局變量。如果要加載特定的節,需要使用section屬性指定。所以,可以使用以下語法加載app.config的節Aggregation:
另外兩個可選參數的介紹如下所示。
q scope。確定所加載的配置變量的作用域。默認情況下設置為local,表示變量只能用於本地模板。其他可能的設置包括parent和global。作用域設置為parent時,變量可用於本地模板和調用模板。作用域設為global時,變量則可以用於所有模板。
q section。指定加載配置文件的特定節。因此,如果只對某個特定節感興趣,可以只加載該節,而非整個文件。
配置文件中變量的引用方式與其他變量的引用方式有所不同。實際上,這些配置變量使用幾種不同的語法來引用,下面各小節將介紹這個內容。
1. #
在Smarty模板中,可以在變量前面加上#號來引用配置變量。例如:
2. Smarty的$smarty.config變量
引用配置變量時,如果喜歡更為正式的語法,可以使用Smarty的$smarty.config變量。例如:
3. get_config_vars()方法
get_config_vars()方法返回一個數組,包含加載的所有配置變量值。如果只對某個變量值感興趣,可以通過variablename傳入該變量。例如,如果只對以上app.config配置文件中Aggregation節的$title變量感興趣,可以首先使用config_load函數加載該節:
然後,在模板中啟用PHP的節中調用get_config_vars(),如下: