FuelPHP

FuelPHPのConfigクラス

更新日:

FuelPHPで会員管理』で、Configファイルの項目名を取得する必要が生じたので、Configクラスについて、詳しく調べてみることにしました。Configファイルのタイプはphp、ini、yaml、jsonとたくさんの種類のファイルタイプを扱うことが出来るみたいですが、使い慣れたphpファイルの方が管理が楽なので、基本的にphpファイルを使った方が何かと便利だと思います。

Configグループ

1. 公式サイトには『Configグループは、メインのconfig.phpを除いて、そのconfigファイル名と同名称のグループとして読み込まれます。』と書かれていますが、最初意味が全く不明でした。実際にConfigクラスのメソッドを実行することで理解できるようなりました。

Configクラスのメソッド

2. Configクラスのメソッドですが、公式サイトでは、一番最初にgetメソッドの説明がありました。この記述の順番だけで、かなり躓きました。ですので、一番最初にloadメソッドから、書いていきたいと思います。

私の単純な思い込みですが、getメソッドを調べるときに、メインのconfig.phpファイルの中身は簡単に取得できたので、他のconfigファイルも普通にそのまま取得できると勘違いしていました。configファイルはFuelPHPが起動した時点で読み込まれているはずですので、loadメソッドを実行しなくても取得できたのではないかなと後で気づきました。

load(ファイル名,グループ名=null,リロード=false,上書き=false)

3. loadメソッドは、configファイル内の設定ファイルをシステムに読み込みます。第2引数を省略すると、グループ名は作成されません。

//app/config/simpleauth.phpファイルが読み込まれます。
Config::load('simpleauth'); 
//simpleauthファイル内のグループ配列を取得します。
$groups=Config::get('groups'); 
//取得した配列を表示します。
echo var_dump($groups); 
//キー番号50のグループ名を表示します。
echo "<h2>".$groups[50]['name']."</h2>";

4. 第2引数をtrueにするとグループ名が自動的にファイル名と同じになります。又、第2引数は好きな名前を入力してグループ名を作成することも出来ます。そしてconfigファイル内の配列はConfig::get(グループ名.配列名)で取得します。下記は上記と全く同じ表示になります。

//simpleauth.phpをs-auth名で読み込みます。
 Config::load('simpleauth','s-auth');
 //simpleauthのgroupsをs-auth.groups名で取得します。
 $groups=Config::get('s-auth.groups');
 //取得した配列の表示
 echo var_dump($groups);
 //キー番号50のグループ名を表示します。
 echo "<h2>".$groups[50]['name']."</h2>";

get(項目名,初期値=null)

5. getメソッドは、取得したい設定項目を返します。項目が存在しないときは第2引数に指定した値を返します。取得した値がグループであればグループ全体を返します。項目名はドット(.)で階層をグループと多次元配列にアクセスすることが出来ます。

//config.phpで設定されている言語を表示します。
echo Confg::get('language');
//config.phpで設定されているpackageを表示します。
echo var_dump(Config::get('packages'));
//simpleauth.phpのgroupsを表示します。
echo var_dump(Config::get('simpelauth.groups'));

loadメソッドのところでも説明しましたが、6行目の箇所でかなり躓きました。app/config/simpleauth.phpのファイルは読み込まれていないので当たり前といえば当たり前ですが、loadメソッドの説明がgetメソッドの下の方にあっただけで悪戦苦闘しました(>_<)。私と同じ過ちを犯す人がいるかもしれないので、あえて記述しておきます。

set(項目名,値)

6. setメソッドは、指定した項目名の値をセットします。getメソッドと同様にドット(.)で階層を区切ることが出来ます。尚、項目名が存在しないときは、それを生成します。

//元の言語を表示
 echo Config::get('language');
 //新しい言語をセットします
 Config::set('language','en');
 //セットした言語を表示します。
 echo Config::get('language');

7. setメソッドで、元のconfigファイルに新しい値を追加してみます。

//simpleauthの読込
 Config::load('simpleauth',true);
 //simpleauthのgroups配列を取得
 $groups=Config::get('simpleauth.groups');
 //新しいgroupsを追加
 $groups[30]=array('name' => 'Superuser', 'roles' => array('user','superuser'));
 //groupsに新しい値をセット
 Config::set('simpleauth.groups',$groups);
 $result=Config::get('simpleauth.groups');
 //groupsの配列を表示
 echo var_dump($result);
 //キー番号30のグループ名を表示
 echo "<h2>".$result[30]['name']."</h2>";

delete(項目名)

8. deleteメソッドは指定した項目を削除します。項目は、getやsetメソッドと同様にドット(.)で区切ることが出来ます。

//simpleauthの読込
 Config::load('simpleauth',true);
 //simpleauthのgroups配列を取得
 $groups=Config::get('simpleauth.groups');
 //groupsからキー50の項目を削除
 Config::delete('simpleauth.groups.50');
 //削除後のgroups配列を取得
 $result=Config::get('simpleauth.groups');
 //groupsの配列を表示
 echo var_dump($result);
 //キー番号-1のグループ名を表示
 echo "<h2>".$result[-1]['name']."</h2>";

save(ファイル名,コンフィグ=null)

9. saveメソッドは、システム内に設定ファイルを保存します。ファイルが存在しないときは、APPPATHのconfigフォルダ内に新規に作成します。ファイル名には拡張子を含まないで記述しますが、拡張子は自動的にphpが付与されます。第2引数は、文字列で指定すれば、グループ名として判断しますし、配列で指定すれば、保存されるべき設定を含むと見なされます。

//simpleauthの読込
 Config::load('simpleauth',true);
 //simpleauthのgroups配列を取得
 $groups=Config::get('simpleauth.groups');
 //新しいgroupsを追加
 $groups[30]=array('name' => 'Superuser', 'roles' => array('user','superuser'));
 //groupsに新しい値をセット
 Config::set('simpleauth.groups',$groups);
 //新子simpleauthファイルを取得
 $result=Config::get('simpleauth');
 //新しいconfigファイルをtest名でシステムに保存
 Config::save('test',$result);
 //test名のconfigファイルを読み込み
 Config::load('test',true);
 //testファイルのgroups配列を表示
 echo var_dump(Config::get('test.groups'));

これでConfigクラスの使い方がひととおり理解できました。本日は以上です。

-FuelPHP
-

Copyright© WinRoad徒然草 , 2018 All Rights Reserved Powered by AFFINGER5.