2010-11-18 13 views
5

PHPで初めての基本的なベアボーンMVCパターンを作成しています。私はグローバル変数が悪いことを知っています、そして、私はすべてのクラスが自分のすべての設定変数にアクセスできるようにしたくないことを知っています。MVCセットアップで設定変数を処理する正しい方法(PHP)

db接続情報、ディレクトリ構造情報、電子メールアドレスなどのように、定数の束を定義したいsettings.phpファイルがあります。私の重要な情報をすべて保持する1つの集中的な場所になります。

私のコントローラとモデルのベースクラスがそれぞれ必要な設定値にしかアクセスできないように、設定クラスを実装する最善の方法は何ですか?たとえば、私のモデルベースクラスはdb接続情報にアクセスする必要があります。

基本的には、私たちが手続き的な日に戻ってきたように、グローバル変数を宣言することなく、自分自身のMVCセットアップがどのように設定情報を処理するかを尋ねています。

ありがとうございました。

+0

PMVCと呼ばれています。グローバル変数回避型memeは、過度に一般化された場合、やや無意味です。 – mario

+0

ああ男良い答え:( –

答えて

0

自分のMVC設定をロールバックしました。 (まだ強いですが、オープンソースになるかもしれません)。私がやる方法は、すべての定数を制御クラスに渡すinitスクリプトを用意することです。

制御クラスはシングルトンです。したがって、別のクラスがアクセスする必要があるときは、制御クラスの既存のインスタンスを取得するだけで、すべての変数をそこから使用できます。

2

これは基本的に嗜好に左右されるので、これについての回答はたくさんあります。

個人的には、設定アレイを使用しました。例:

$conf['db']['username'] = "username"; 
$conf['db']['password'] = "password"; 

次に、必要な部分を必要な場所に渡します。

関連する問題