コンフィグファイルは便利ですので、活用していますが、コードはサンプルやコアの中を参考にして使っています。
ところが、よくわからないで使っているため、時々はまります。
そこで、重い腰を上げて、理解することとしました。
コンフィグに関して、どの優先順位でディレクトリーが探されるのか、それと基本的な使い方については、既にmadroom projectさんがFuelPHPでオリジナルconfigファイルの作成の記事にまとめていらっしゃるので、参考にしてください。
まずテスト用にファイルを作成してみましょう。今回は、app/config下に置くこととします。
sample.phpというファイル名にしましょう。内容はこんな感じにします。
retrun array (
item1 => 'アイテム1',
item2 => 999,
);
まず、コンフィグを使用するときには読み込みです。
Config::load('sample');
これが基本です。この形式で読み込んだ時、値を参照するには、Config::get('item1')、config::get('item2')という指定になります。
この形式ですと、キーに使っている項目が、他のコンフィグファイルとバッティングしてしまうことがあります。そこで、名前空間と同じような感じで、グループ分けが出来るようになっています。
グループ分けで利用するには、読み込み時に第2引数で指定します。
Config::load('sample', true);
デフォルトではnullになっており、グループを使用せず、ルートとして読み込まれるという、意味になります。trueは第1引数で指定したファイル名をグループ名としても利用する指定です。Fuelが使用している数あるコンフィグファイルの中でも、config.phpだけがシステム的にはルートで読み込まれる、お約束のようです。それ以外のコンフィグファイルは、グループとして読み込まれるようです。
この第2引数に文字列を指定すると、ファイル名の代わりに、その文字列をグループとして、キャッシュされます。
こうして、グループとして読み込んだ場合、参照するには、グループ名としてピリオドで分けて、指定することになります。Config::get('sample.item1')とかConfig::get('sample.item2')という、形式になります。
Config::get()は、指定されたキーが見つからない場合nullを返します。見つからない場合に返してもらいたい値は第2引数で指定します。
Config::get('sample.item1', false)という感じになります。この形式ですと、見つからない場合はfalseを返します。
Config::load()には第4引数まであります。第3引数をtureにすると、再読み込みの強要となります。Config::load()は一度読み込んだ設定値は、通常再度読み込みません。ですから、指定ファイルを再読み込みするためのオプションでしょう。(まだ、試していません。使いそうな機会がまだないためです。)
第4引数はオーバーライトの指定、既に読み込んだ値とどのようにマージするかの指定らしいです。内部で使用する関数が違うらしいですが、同様に機会がないため、試していません。
また、このConfig::load()は読み込みに成功した場合、読み込んだ値を返してくれます。失敗したときはnullです。既に読み込んだ時はfalseです。(ごめんなさい。いま、うる覚えです。)
$c = Config::load('sample');
と、するならば$c['item1']、$c['item2']でも参照できます。
また、コンフィグファイル中の項目は配列の入れ子に出来ます。キーは階層をピリオドで表して表現し、参照します。例えばsample2.phpというファイルを考えてみましょう。
return array(
item1 => array(
item2 => 'データ',
),
);
これをConfig::load('sample2', true)で読み込んだのなら、Config::get('sample2.item1.item2')で、'データ'を参照できます。
これで、ひと通り利用するには、困らないと思います。
なお、Configクラスには、値のset()、delete()、そして、なんと設定値をファイルに保存するためのsave()まで揃っています。
これは、作成するシステムの設定値をあるグループとしてまとめて、必要に応じてセーブする機能とか、簡単に実現できますね。
| Fuelphp、サンプルコードテスター< 前 | 次 >Fuelphp、プロファイラが凄い |
|---|
| < 前 | 次 > |
|---|