Roundcubeプラグイン設定ファイルの利用方法を紹介します。
ソースは以下のようになります。
sample.php
rc = rcmail::get_instance();
//設定ファイルをロード
$this->load_config('config/config.inc.php');
}
function init() {
$name = $this->rc->config->get('sample.user', '');
error_log('name:'.$name);
}
}
config.inc.php
割と簡単に使えるようです。
rc->config->get('sample.user', '');
?>
ここのconfigの実態はrcube_configオブジェクトになります。
getメソッドの第二引数は値が取得出来なかった場合のデフォルト値になります。
注意点としては
コンストラクタの中で親クラスであるrcube_pluginのコンストラクタを
必ず呼び出す必要があります。
rcube_pluginクラスのコンストラクタは以下のようになっています。
ID = get_class($this);
$this->api = $api;
$this->home = $api->dir . $this->ID;
$this->urlbase = $api->url . $this->ID . '/';
}
?>
homeディレクトリなどの値を設定しています。
そして、rcube_pluginクラスのload_configメソッドは以下のようになっています。
home.'/'.$fname;
$rcmail = rcmail::get_instance();
if (is_file($fpath) && !$rcmail->config->load_from_file($fpath)) {
raise_error(array('code' => 527, 'type' => 'php',
'file' => __FILE__, 'line' => __LINE__,
'message' => "Failed to load config from $fpath"), true, false);
return false;
}
return true;
}
?>
ここで設定ファイルの場所を取得するためにhome変数を使用しているため
rcube_pluginクラスのコンストラクタを呼び出していないと設定ファイルを取得出来なくなります。