[Codeigniter-users] 設定ファイルに関して

Back to archive index

kunitsuji tsuji****@m-s*****
2008年 7月 14日 (月) 11:34:15 JST


 kunitsujiです。

まず、config/ディレクトリ以下のファイルは、あくまでも設定情報を
配列で保存する場所。
と考えたほうがいいです。
詳しくConfigクラスを追っていないので正確な部分はお伝えできませんが。
ということは、ここでいろいろ書いていくのはよろしくないということですね。

設定情報をここで配列で保存する方法がいい悪いはあるとは思いますが。

次に自分がいまやっている方法を書きますね。

application/conf/
ディレクトリを用意して、そこに設定情報を書いたファイルを保存しています。
例)
application/conf/config_database.php
application/conf/config_define.php
というファイルを保存しています。

次に、
application/config/config.phpで
include_once APPPATH . "conf/config_define.php" ;
として、その設定情報を読み込んでいます。

config.phpの中の記述は次のようにしています。
$config['base_url'] = MYNETS_URL;
$config['base_url_ssl'] = MYNETS_URL_SSL;

config_define.phpでは次のように記述

//URLの情報
define('MYNETS_URL', 'http://localhost/CI/mynets2/');
define('MYNETS_URL_SSL', 'https://localhost/CI/mynets2/');

//SNSから配信するメールアドレス
define('SNS_MAIL', 'sns****@mynet*****');
//管理画面でメールを開く場合(エラーメール等の対処)
define('SNS_MAIL_SMTP_USER', 'username');
define('SNS_MAIL_SMTP_PASS', 'password');


//ユーザー権限の設定
define('MYNETS_ROLE_MEMBER', 1);
define('MYNETS_ROLE_GUEST', 0);
define('MYNETS_ROLE_SUPERU_USER', 99);
define('MYNETS_ROLE_ADMIN', 10);

//出力する文字コードデフォルト
define('MYNETS_OUTPUT_ENCODE', 'UTF-8');

・・・・・・・
で、これを読み込んで、それぞれのconfig.phpで
定数をセットしているということですね。

これがいいのか悪いのかはわかりません。

あとは、1.6.3では
application/config/constants.php
というファイルが追加され、ここに
define('FILE_READ_MODE', 0644);
define('FILE_WRITE_MODE', 0666);
define('DIR_READ_MODE', 0755);
define('DIR_WRITE_MODE', 0777);

等が記載されています。
つまりここに記載しておけばいいのかなとか思いますが、ファイルの読み込み順
およびコアシステムで使われるものなのでバージョンアップの際に変更される可
能性があり、自分としては独立してconf/ディレクトリに設定情報を書いていま
す。

あと、下記の部分ですが、関数を設置していますが、これを呼び出してないとい
うことと、
$DB_HOSTという変数は、この関数内でしか使えないのでだめですね。
また、config/database.php内においても
$this->config->loadは使えないとおもいます。

>JOMRです。
>
>
>> つまり、config.phpやその他の設定ファイルでは$this->がつかえませんよというこ
>> とです。
>> これがいいたいためにエラーを確認してもらったんです。
>という事は一旦変数に入れて利用すればいいということですか?
>config/database.php を
>function Database()
>{
>	parent::Database();
>	$this->config->load('config_customer', TRUE);
>	$DB_HOST = $this->config->item('db_host', 'config_customer');
>}
>
>$active_group = "default";
>$active_record = TRUE;
>
>$db['default']['hostname'] = $DB_HOST;
>
>としてみました。
>すると表示はしたものの
>A PHP Error was encountered
>
>Severity: Notice
>
>Message: Undefined variable: DB_HOST
>
>Filename: config/database.php
>
>Line Number: 46
>となり少し表示がかわりました。
>
>
>> 詳しくは後ほど
>宜しくお願いします。
>
>_______________________________________________
>Codeigniter-users mailing list
>Codei****@lists*****
>http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users




Codeigniter-users メーリングリストの案内
Back to archive index