2013年4月29日月曜日

[FuelPHP]設定ファイルの使い方

このエントリーをはてなブックマークに追加 はてなブックマーク - [FuelPHP]設定ファイルの使い方
Bloggerへの移行前のWordpressにて2013-02-19に投稿した記事です。

DBヘの接続情報だとかFuelPHPを使う上で必要なファイルはapp/config/config.phpというファイルがあるのですが、プロジェクトでオリジナルの設定が必要な場合が有ると思います。例えば
  • 画面の一部の文言
  • ファイルのパス
  • 外部API取得先のURL及びID、パスワワード
というものが挙げられると思います。(実際私の場合はこんな感じでした)

上記についてFuelPHPではConfigクラスがあり、こちらを利用することで簡単に対応ができます。

ファイル形式

公式のドキュメントを見ると1.5現在では以下の種類のファイルが利用出来ます。
  • PHPのarray形式(.php)
<?php

return  array(
'api' => array(
 'url' => 'http://hoge.com',
 'id' => 'id',
 'password' => 'pass'
 ),
);
  • ini形式(.ini)
  • [api]
    url = 'http://hoge.com'
    id = 'id'
    password = 'pass'
    
  • YAML形式(.yml)
  • api:
     url: http://hoge.com
     id: id
     password: pass
    
  • JSON形式(.json)
  • {
    "api" :
        {
            "url": "http://hoge.com",
            "id": "id",
            "password": "pass"
        }
    }
    
    私の場合、開発者以外の人も扱う可能性があったのでini形式で利用しました。個人的にはPHPのarray形式が一番しっくりきそうな気がします。
    

    読み込み方

    こちらのサイトを参考にさせて頂きました。
    大きく分けて手動でやる方法と自動でやる方法があります。自動でやる場合、予め設定ファイルにどのファイルを読み込むかを設定しておきます。
    
    hoge.iniという設定ファイルを自動で読み込む場合、app/config/config.phpに以下のように追記を行います。なお、下記例の場合にはhoge.iniはapp/config配下に配置します。
    
    return array(
    'always_load'  => array(
     
      'packages'  => array(
          'orm',
          'auth',
      ),
     'config' => array(
      'hoge.ini' => null,
     ),
    ),
    
    2つの設定ファイルを読み込む場合、configのarrayに追加すればOKです。 手動で読み込む場合にはConfig::load('hoge.ini')というように明示的に読み込むファイルを指定します。

    プログラム内での利用の仕方

    今回の例の場合、以下のように利用可能です。
    
    $url = Config::get('api.url')
    
    これで取得出来ます。
    また、仮に値が取得出来なかった場合(指定行がコメントアウトされていたなど)のデフォルト値の設定も可能です。
    
    $url = Config::get('api.url','http://fuga.com')
    
    最初に例で示したファイルであれば上記の方式で取得が可能である事を確認しました。
    
    Configクラスは他にもset,deleteメソッドなどもあるのでPHPUnitで試験をする際に使うと便利そうですね!
    

    0 件のコメント:

    コメントを投稿