November 28, 2011

FuelPHPでオリジナルconfigファイルの作成

FuelPHPの設定ファイルはcore/config/下に配置され、
設定を変更する場合はapp/config/下にコピー。編集。
が基本です。

また、app/config/[環境別ディレクトリ]/下にコピーすれば、それが最優先されるはずです。

以下の関係と認識しています。
app/config/[環境別ディレクトリ]/ > app/config/ > core/config/

最も基本となる設定ファイルはconfig.phpですが、
例えば先日書いた記事のTwitterのOauth関係の設定をconfig.phpに追記したくはありません。
http://madroom-project.blogspot.com/2011/11/fuelphp-zend-framework-twitteroauth.html

そこで、オリジナルの設定ファイルが欲しくなり、以下を参考に、やってみました。
http://docs.fuelphp.com/classes/config.html


(1)
まず
app/config/_custom.php
を作成。
ファイル名ソートの関係で先頭にアンダースコアを付与しています。
この辺りは、当然、お好きに。
return array(
    '_twitter' => array(
        'callbackUrl' => '[callbackUrl]',
        'siteUrl' => 'http://twitter.com/oauth',
        'consumerKey' => '[consumerKey]',
        'consumerSecret' => '[consumerSecret]',
        'authorizeUrl' => 'http://twitter.com/oauth/authenticate',
    ),
);

/* End of file _custom.php */

(2)
config/config.phpの'always_load'の'config'を以下にする。
'config'  => array(
    '_custom' => null,
),
valueにnullを指定してやらないと、どうも、ダメでした。
この点については、後日、調査しよう。。。

尚、手動でロードする場合は、コントローラのbeforeメソッドなどに、以下を記述。
Config::load('_custom');

これでConfig::getにて、app/config/_custom.phpの内容を取得できます。
(1)の設定の取得は、Config::get('_twitter')です。

--
2011/12/21 追記
Config::get('_twitter.callbackUrl')といった感じで、ドット繋ぎで取得することも可能です。
--


(3)
一応、app/config/[環境別ディレクトリ]/_custom.phpも作成して確認しましたが
期待通り、環境別の切り分けもOKでした。

No comments:

Post a Comment