犬ターネット

PHPアプリケーションの設定ファイルの話

2011-06-29 php

アプリケーションの設定は .xml とか .yaml 使って外部ファイル化すると思うんですけど、最近は設定を直接 PHP に書いてます。こんな具合に。

<?php
/** C.php */
class {
  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 吐くだけ(アプリケーションも実行されなくて安心)だし、まあ、いろいろ楽。

っていうの、一般的なのかな。


mixiやめて結構たちますが

Google +1 ボタン