第9章 設定ファイル

設定ファイルは、1つのファイルからグローバルなテンプレート変数を管理する方法として、 デザイナーにとって有用です。1つの例としては、テンプレートの色の指定を行う場合です。 通常、アプリケーションの配色を変更するには全てのテンプレートファイルを調べ、 該当する箇所の色の指定を変更する必要があります。 設定ファイルを使うと色の指定を一箇所で管理できるので、 更新する必要があるファイルは1つだけになります。

例 9.1. 設定ファイルの記述例


# グローバル変数
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."""

# 隠されたセクション
[.Database]
host=my.example.com
db=ADDRESSBOOK
user=php-user
pass=foobar

  

設定ファイルの値 はクォートで囲む事が出来ます(必須ではありません)。 シングルクォートとダブルクォートのどちらでも使用できます。 複数行にまたがる値を持つ場合は、値全体をトリプルクォート(""") で囲みます。設定ファイルの中にコメントを記述するには、 行の初めに # (ハッシュ) を使う事を推奨します。

上記の設定ファイルの例は2つのセクションを持っています。 セクション名はブラケット[]に囲まれ、[ もしくは ] を含まない任意の文字列を指定できます。 先頭の4つの変数は、グローバル変数 (あるいはセクションに含まれない変数) です。これらの変数は常に設定ファイルから読み込まれます。 特定のセクションが読み込まれた場合は、 グローバル変数に加えてそのセクションからの変数が読み込まれます。 グローバル変数とセクション内に同じ変数が存在する場合はセクション内の変数が使用されます。 1つのセクション内に同名の2つの変数を指定した場合は、 $config_overwrite が無効でない限りは後で指定されたものが使用されます。

設定ファイルの読み込みは、組み込みのテンプレート関数 {config_load} あるいは API 関数 configLoad() によって行います。

[.hidden] のように変数名又はセクション名の先頭にピリオド (.) をつける事によって、 変数又は全体のセクションを隠蔽する事ができます。 アプリケーションからは使用されるがテンプレートエンジンからは使用されないような重要なデータ (DB接続に関する情報など) を取得する際に有用です。 テンプレートを編集をするサードパーティが存在する場合、 重要なデータを含んだ設定ファイルをテンプレート内に読み込む事によって盗み読まれる危険性を回避できます。

設定ファイル (あるいはリソース) のロードには、同じリソース機構をテンプレートとして使います。 つまり、設定ファイルをデータベースから $smarty->configLoad("db:my.conf") で読み込みこともできるということです。

{config_load}$config_overwrite$default_config_handler_funcgetConfigVars()clearConfig() および configLoad() も参照ください。