2012-04-01 7 views
2

CodeIgniterを初めて使用しました。私は私の個人的なプロジェクトに使っています。設定ファイル(ModelIgniter)でのモデル定数の使用

私が従うべきことの1つは、最良のコーディング手法に固執することです。それらのうちの1つはDRYルール(あなた自身を繰り返さないでください)です。私はいくつかの定数を適切なモデルクラスで定義し、コード内のどこにでも使用しようとしています。ちょっとした変更になると、1つの場所でしか実行できません。

私は例えば、いくつかの定数を持つこのクラスを、持っている:


class Hero_attributes 
{ 
    const ID = 'id'; 
    const NAME = 'name'; 
    const LEVEL = 'level'; 
    const MAG_LEVEL = 'maglevel'; 
    const VOCATION = 'vocation'; 
    const GENDER = 'sex'; 
    const SPEED = 'speed' 
    (...) 
} 

私も自動的にロードされたカスタム設定ファイルtenkai_config.phpを行いました。設定アレイでは、私はしかし、私はFatal error: Class 'Hero_attributes' not found in C:\wamp_new\www\yourwodb\application\config\tenkai_config.php on line 29メッセージを取得するキーとしてクラス、すなわち:


$config['vocations']['default'] = array(
    'hero' => array(
     Hero_attributes::LAST_LOGIN => 0, 
     Hero_attributes::LEVEL => 1, 
     Hero_attributes::MAG_LEVEL => 80, 
     Hero_attributes::RESIDENCE => 1, 
     Hero_attributes::POSITION_X => 73, 
     Hero_attributes::POSITION_Y => 181, 
     Hero_attributes::POSITION_Z => 6, 
     (...) 
    ) 
); 

から定数を使用したいと思います。

設定ファイルでどのように定数を使用できますか?

+0

config.php変数が動的に読み込まれます。 – safarov

答えて

5

定数を定義する必要がある場合のみ。 ./application/config/constants.phpファイルで定義することができます。アプリケーション全体で利用可能です。

+2

はい、私はそれを行うことができますが、私の考えでは最良のコーディング慣行とは一致しません。私はすべてのコードを適切な場所(クラス、設定など)に所属させたい。私は本当にすべての混合定数を持つ1つのグローバルな場所を使いたいとは思わない。 – Ventus

+0

定数がどこに定義されているのか、すべての定数が1つのファイルに定義されていることを知っているので、将来的には維持しやすいというのは良い習慣だと思う。 –

+0

しかし、定数が厳密に1つに関連している場合は、モジュールと言いましょう。次に、それらを分ける方が良いです。もちろん、定数がさまざまな場所やコンテキストで使用されている場合は、それをグローバル化しないでください。しかし、私の定数は通常、厳密に定義された領域で使用されます。とにかく、答えに感謝:) – Ventus

0

Hero_attributesモデルクラスを自動読み込みする必要があります。 configファイルを自動ロードする前にそれを行う必要があります。

申し訳ありません私の質問は尋ねられたため、前回の返信は司会者によって削除されました。

関連する問題