2013.
06.
22
15:00:38
要は独自設定ファイルを作ろうと思ったのです。
適当に追加して適当に読み込んでも動きそうだけど、
お約束的なやり方があるのかな(--?
ほんであれやこれやと調べてみたところ、
いくつかやり方が見つかりましたのでメモっておきます。
まずは前準備として「fuel/app/config/」配下に設定ファイルを用意φ(--)
■fuel/app/config/test_config.php
そして肝心の読み込みですが……一言で言ってしまえば、
設定ファイルを読み込んで値を抜けば良いわけです。
設定ファイルを読み込むのが「Config::load()」で値を抜くのが「Config::get()」。
あとはこれを適当なところで実行するだけの話です。
まずは一番単純なやり方φ(--)
設定ファイル「test_config(.php)」を読み込んで
その中の「key1(test_config.key1)」を取得しています。
ちなみにConfig::load()の第二引数にtrueか任意の文字列を設定すると
グループ名なるものが付与されます。
や
の形ですね。
もちろんグループ名を付与しないで
とすることも可能は可能ですが、付与しておいた方が安全でしょう。
グループ名は他の設定ファイルと混じらないための目印なのです。
グループ名が無いと大元の設定と合体しちゃうので、
例えば「config1.php」と「config2.php」に同じ設定項目「key1」が定義されていると
どちらかの「key1」が無くなっちゃいます。合体するから。
グループ名をつけておくと「config1.key1」「config2.key1」のような扱いになるので
別の設定ファイルで同じ項目を定義していても混ざらないのです。
これで独自設定ファイルの読み込み、完了\(--)/
としても良いのですが、毎度毎度「Config::load()」を実行するのは面倒です。
「「Config::load()」はどこか別のところに置いちゃいましょう。
どこに置く(--?
お好きなところにどーぞ。
別にコントローラの「before()」メソッドに置いても良いですよ。
ただ個人的には以下の2つのどちらかが綺麗かなーと思っています。
1.「fuel/app/config/config.php」で指定
グループ名を付与しないパターンです。
「fuel/app/config/config.php」の「return array(~)」の中に
以下の記述を追加φ(--)
そしてコントローラ側はこんな感じφ(--)
2.「fuel/app/bootstrap.php」で指定
グループ名を付与したいときはこっち?
「fuel/app/bootstrap.php」の最後に以下の記述を追加φ(--)
そしてコントローラ側はこんな感じφ(--)
ってな感じで、完了\(--)/
あっ、そうそう。
fuelphpさんはPHPです。
なもんで結構無茶な書き方もできます。
ぶっちゃけこれでも動くよφ(--)
とか
とか(^^;
身も蓋もないこと書いたところで、今度こそ完了\(--)/
適当に追加して適当に読み込んでも動きそうだけど、
お約束的なやり方があるのかな(--?
ほんであれやこれやと調べてみたところ、
いくつかやり方が見つかりましたのでメモっておきます。
まずは前準備として「fuel/app/config/」配下に設定ファイルを用意φ(--)
■fuel/app/config/test_config.php
<?php
return array(
'key1' => 'value1',
'key2' => 'value2',
);
return array(
'key1' => 'value1',
'key2' => 'value2',
);
そして肝心の読み込みですが……一言で言ってしまえば、
設定ファイルを読み込んで値を抜けば良いわけです。
設定ファイルを読み込むのが「Config::load()」で値を抜くのが「Config::get()」。
あとはこれを適当なところで実行するだけの話です。
まずは一番単純なやり方φ(--)
public function action_index()
{
print "index";
Config::load('test_config', true);
print Config::get('test_config.key1');
}
{
print "index";
Config::load('test_config', true);
print Config::get('test_config.key1');
}
設定ファイル「test_config(.php)」を読み込んで
その中の「key1(test_config.key1)」を取得しています。
ちなみにConfig::load()の第二引数にtrueか任意の文字列を設定すると
グループ名なるものが付与されます。
Config::load('test_config', true);
print Config::get('test_config.key1');
print Config::get('test_config.key1');
や
Config::load('test_config', 'hoge');
print Config::get('hoge.key1');
print Config::get('hoge.key1');
の形ですね。
もちろんグループ名を付与しないで
Config::load('test_config');
print Config::get('key1');
print Config::get('key1');
とすることも可能は可能ですが、付与しておいた方が安全でしょう。
グループ名は他の設定ファイルと混じらないための目印なのです。
グループ名が無いと大元の設定と合体しちゃうので、
例えば「config1.php」と「config2.php」に同じ設定項目「key1」が定義されていると
どちらかの「key1」が無くなっちゃいます。合体するから。
グループ名をつけておくと「config1.key1」「config2.key1」のような扱いになるので
別の設定ファイルで同じ項目を定義していても混ざらないのです。
これで独自設定ファイルの読み込み、完了\(--)/
としても良いのですが、毎度毎度「Config::load()」を実行するのは面倒です。
「「Config::load()」はどこか別のところに置いちゃいましょう。
どこに置く(--?
お好きなところにどーぞ。
別にコントローラの「before()」メソッドに置いても良いですよ。
ただ個人的には以下の2つのどちらかが綺麗かなーと思っています。
1.「fuel/app/config/config.php」で指定
グループ名を付与しないパターンです。
「fuel/app/config/config.php」の「return array(~)」の中に
以下の記述を追加φ(--)
'always_load' => array(
'config' => array(
'test_config' => null,
),
),
※「test_config」は設定ファイル名'config' => array(
'test_config' => null,
),
),
そしてコントローラ側はこんな感じφ(--)
public function action_index2()
{
print "index2";
print Config::get('key1');
}
{
print "index2";
print Config::get('key1');
}
2.「fuel/app/bootstrap.php」で指定
グループ名を付与したいときはこっち?
「fuel/app/bootstrap.php」の最後に以下の記述を追加φ(--)
Config::load('test_config', true);
※「test_config」は設定ファイル名そしてコントローラ側はこんな感じφ(--)
public function action_index3()
{
print "index3";
print Config::get('test_config.key1');
}
{
print "index3";
print Config::get('test_config.key1');
}
ってな感じで、完了\(--)/
あっ、そうそう。
fuelphpさんはPHPです。
なもんで結構無茶な書き方もできます。
ぶっちゃけこれでも動くよφ(--)
public function action_index4()
{
print "index4";
$config = Config::load('test_config');
print $config['key1'];
}
{
print "index4";
$config = Config::load('test_config');
print $config['key1'];
}
とか
public function action_index5()
{
print "index5";
print Config::load('test_config',null, true)['key1'];
print Config::load('test_config',null, true)['key2'];
}
{
print "index5";
print Config::load('test_config',null, true)['key1'];
print Config::load('test_config',null, true)['key2'];
}
とか(^^;
身も蓋もないこと書いたところで、今度こそ完了\(--)/