プログラミング言語や環境設定を中心としたパソコン関連の技術メモです。
主にシステム開発中に調べたことをメモしています。TIPS的な位置付けで、気が向いたときにちまちま更新していきます。
FuelPHP1.6、使用する設定ファイルを追加する
要は独自設定ファイルを作ろうと思ったのです。
適当に追加して適当に読み込んでも動きそうだけど、
お約束的なやり方があるのかな(--?

ほんであれやこれやと調べてみたところ、
いくつかやり方が見つかりましたのでメモっておきます。

まずは前準備として「fuel/app/config/」配下に設定ファイルを用意φ(--)

■fuel/app/config/test_config.php
<?php
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');
}

設定ファイル「test_config(.php)」を読み込んで
その中の「key1(test_config.key1)」を取得しています。

ちなみにConfig::load()の第二引数にtrueか任意の文字列を設定すると
グループ名なるものが付与されます。

Config::load('test_config', true);
print Config::get('test_config.key1');



Config::load('test_config', 'hoge');
print Config::get('hoge.key1');

の形ですね。
もちろんグループ名を付与しないで

Config::load('test_config');
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」は設定ファイル名

 そしてコントローラ側はこんな感じφ(--)

public function action_index2()
{
    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');
}

ってな感じで、完了\(--)/

あっ、そうそう。

fuelphpさんはPHPです。
なもんで結構無茶な書き方もできます。

ぶっちゃけこれでも動くよφ(--)

public function action_index4()
{
    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'];
}

とか(^^;

身も蓋もないこと書いたところで、今度こそ完了\(--)/
スポンサーリンク
 
このエントリーをはてなブックマークに追加 

category:FuelPHP  thema:パソコンな日々 - genre:コンピュータ  Posted by ササキマコト 

  関連記事