2011-06-29 php
アプリケーションの設定は .xml とか .yaml 使って外部ファイル化すると思うんですけど、最近は設定を直接 PHP に書いてます。こんな具合に。
<?php
/** C.php */
class C {
const DB_HOST = '192.168.3.50';
const DB_PORT = '1234';
const DB_USER = 'mgng';
const DB_PASS = 'password';
public static $INI = array(
'default_charset' => 'UTF-8',
'mbstring.language' => 'Japanese',
);
}
const は配列を定義できないので、連想配列で設定持たせたい場合は public static 使うしかなくてちょっと気持ち悪いんですが、でもこうしておけば、
<?php
require_once '/path/to/conf/C.php';
echo C::DB_HOST; // 192.168.3.50
foreach ( C::$INI as $key => $val ) {
ini_set( $key, $val );
}
みたいに設定使いたいところで require_once するだけで済むし、設定ファイルをパースするオーバーヘッドもファイル読み込みエラー処理もいらないし、
エラーになるとすればせいぜい書式ミスって PHP が Parse error 吐くだけ(アプリケーションも実行されなくて安心)だし、まあ、いろいろ楽。
っていうの、一般的なのかな。